Skip to content
This repository was archived by the owner on Jun 27, 2024. It is now read-only.

Commit 3a78740

Browse files
authored
Migrate demo app to Vite (#70)
1 parent 29c6b94 commit 3a78740

29 files changed

+3693
-17065
lines changed

Diff for: .eslintrc.js renamed to .eslintrc.cjs

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,8 @@ module.exports = {
1313
"vue/require-default-prop": 0,
1414
"indent": ["error", 4],
1515
"quotes": ["error", "double"],
16+
"object-curly-spacing": ["error", "always"],
17+
"semi": ["error", "always"],
18+
"comma-spacing": ["error", { "before": false, "after": true }]
1619
}
17-
}
20+
};

Diff for: .github/workflows/php.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ jobs:
4040
- name: "Install locked dependencies with npm"
4141
run: |
4242
npm ci --ignore-scripts
43-
cd app
44-
npm ci --ignore-scripts
4543
4644
- name: Build package
47-
run: npm run build
45+
run: |
46+
npm run build
47+
npm pack
4848
4949
- name: Setup PHP
5050
uses: shivammathur/setup-php@v2
@@ -58,7 +58,8 @@ jobs:
5858
cd app
5959
cp .env.example .env
6060
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest
61-
npm run production
61+
npm ci --ignore-scripts
62+
npm run build
6263
touch database/database.sqlite
6364
php artisan migrate:fresh --seed
6465
php artisan dusk:chrome-driver `/opt/google/chrome/chrome --version | cut -d " " -f3 | cut -d "." -f1`

Diff for: .gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,5 @@ coverage
3131
app/public/css/app.css
3232
app/public/js/app.js
3333
app/public/mix-manifest.json
34+
35+
protonemedia-inertiajs-tables-laravel-query-builder-*.tgz

Diff for: app/composer.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
"require": {
1111
"php": "^8.0.2",
1212
"guzzlehttp/guzzle": "^7.2",
13-
"inertiajs/inertia-laravel": "^0.5.4",
13+
"inertiajs/inertia-laravel": "^0.6.3",
1414
"laravel/breeze": "^1.9",
1515
"laravel/dusk": "^6.24",
16-
"laravel/framework": "^9.11",
16+
"laravel/framework": "^9.19.0",
1717
"laravel/sanctum": "^2.8",
1818
"laravel/tinker": "^2.7",
19+
"protonemedia/inertiajs-tables-laravel-query-builder": "@dev",
1920
"spatie/laravel-query-builder": "^5.0",
20-
"tightenco/ziggy": "^1.0",
21-
"protonemedia/inertiajs-tables-laravel-query-builder": "@dev"
21+
"tightenco/ziggy": "^1.0"
2222
},
2323
"require-dev": {
2424
"fakerphp/faker": "^1.9.1",

Diff for: app/package-lock.json

+2,731-15,427
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: app/package.json

+7-16
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,26 @@
11
{
22
"private": true,
33
"scripts": {
4-
"dev": "npm run development",
5-
"development": "mix",
6-
"watch": "mix watch",
7-
"watch-poll": "mix watch -- --watch-options-poll=1000",
8-
"hot": "mix watch --hot",
9-
"prod": "npm run production",
10-
"production": "mix --production --mix-config=webpack.ssr.mix.js && mix --production"
11-
},
12-
"dependencies": {
13-
"@protonemedia/inertiajs-tables-laravel-query-builder": "file:.."
4+
"dev": "vite",
5+
"build": "vite build"
146
},
157
"devDependencies": {
8+
"@protonemedia/inertiajs-tables-laravel-query-builder": "file:../protonemedia-inertiajs-tables-laravel-query-builder-2.1.0.tgz",
169
"@inertiajs/inertia": "^0.11.0",
1710
"@inertiajs/inertia-vue3": "^0.6.0",
1811
"@inertiajs/progress": "^0.2.7",
1912
"@inertiajs/server": "^0.1.0",
2013
"@tailwindcss/forms": "^0.5.0",
21-
"@vue/compiler-sfc": "^3.2.31",
22-
"@vue/server-renderer": "^3.2.31",
14+
"@vitejs/plugin-vue": "^3.0",
2315
"autoprefixer": "^10.4.2",
2416
"axios": "^0.25",
2517
"eslint": "^8.18.0",
2618
"eslint-plugin-vue": "^9.1.1",
27-
"laravel-mix": "^6.0.6",
19+
"laravel-vite-plugin": "^0.5.0",
2820
"lodash": "^4.17.19",
2921
"postcss": "^8.4.6",
3022
"tailwindcss": "^3.1.0",
31-
"vue": "^3.2.31",
32-
"vue-loader": "^17.0.0",
33-
"webpack-node-externals": "^3.0.0"
23+
"vite": "^3.0",
24+
"vue": "^3.2.31"
3425
}
3526
}

Diff for: app/postcss.config.js

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = {
2+
plugins: {
3+
tailwindcss: {},
4+
autoprefixer: {},
5+
},
6+
}

Diff for: app/resources/js/Pages/CustomTable.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Table } from "@protonemedia/inertiajs-tables-laravel-query-builder";
55
// use this one for development:
66
// import Table from "../../../../js/Components/Table.vue"
77
8-
defineProps(["users"])
8+
defineProps(["users"]);
99
</script>
1010

1111
<template>

Diff for: app/resources/js/Pages/TwoTables.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Table } from "@protonemedia/inertiajs-tables-laravel-query-builder";
55
// use this one for development:
66
// import Table from "../../../../js/Components/Table.vue"
77
8-
defineProps(["companies", "users"])
8+
defineProps(["companies", "users"]);
99
</script>
1010

1111
<template>

Diff for: app/resources/js/Pages/Users.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Table } from "@protonemedia/inertiajs-tables-laravel-query-builder";
55
// use this one for development:
66
// import Table from "../../../../js/Components/Table.vue"
77
8-
defineProps(["users"])
8+
defineProps(["users"]);
99
</script>
1010

1111
<template>

Diff for: app/resources/js/app.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { createApp, h } from "vue";
22
import { createInertiaApp } from "@inertiajs/inertia-vue3";
33
import { InertiaProgress } from "@inertiajs/progress";
4+
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
45

56
const appName = window.document.getElementsByTagName("title")[0]?.innerText || "Laravel";
67

78
createInertiaApp({
89
title: (title) => `${title} - ${appName}`,
9-
resolve: (name) => require(`./Pages/${name}.vue`),
10+
resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob("./Pages/**/*.vue")),
1011
setup({ el, app, props, plugin }) {
1112
return createApp({ render: () => h(app, props) })
1213
.use(plugin)

Diff for: app/resources/js/ssr.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { createSSRApp, h } from 'vue';
2-
import { renderToString } from '@vue/server-renderer';
3-
import { createInertiaApp } from '@inertiajs/inertia-vue3';
4-
import createServer from '@inertiajs/server';
5-
import route from 'ziggy';
1+
import { createSSRApp, h } from "vue";
2+
import { renderToString } from "@vue/server-renderer";
3+
import { createInertiaApp } from "@inertiajs/inertia-vue3";
4+
import createServer from "@inertiajs/server";
5+
import route from "ziggy";
66

7-
const appName = 'Laravel';
7+
const appName = "Laravel";
88

99
createServer((page) =>
1010
createInertiaApp({

Diff for: app/resources/views/app.blade.php

+1-5
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,8 @@
66

77
<title inertia>{{ config('app.name', 'Laravel') }}</title>
88

9-
<!-- Styles -->
10-
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
11-
12-
<!-- Scripts -->
139
@routes
14-
<script src="{{ mix('js/app.js') }}" defer></script>
10+
@vite(['resources/css/app.css', 'resources/js/app.js'])
1511
@inertiaHead
1612
</head>
1713
<body class="font-sans antialiased">

Diff for: app/vite.config.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { defineConfig } from "vite";
2+
import laravel from "laravel-vite-plugin";
3+
import vue from "@vitejs/plugin-vue";
4+
5+
export default defineConfig({
6+
plugins: [
7+
laravel([
8+
"resources/css/app.css",
9+
"resources/js/app.js",
10+
]),
11+
vue({
12+
template: {
13+
transformAssetUrls: {
14+
base: null,
15+
includeAbsolute: false,
16+
},
17+
},
18+
}),
19+
]
20+
});

Diff for: app/webpack.mix.js

-33
This file was deleted.

Diff for: js/Components/ButtonWithDropdown.vue

+5-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import OnClickOutside from "./OnClickOutside.vue";
3232
import { createPopper } from "@popperjs/core/lib/popper-lite";
3333
import preventOverflow from "@popperjs/core/lib/modifiers/preventOverflow";
3434
import flip from "@popperjs/core/lib/modifiers/flip";
35-
import { ref, watch, onMounted } from "vue"
35+
import { ref, watch, onMounted } from "vue";
3636
3737
const props = defineProps({
3838
placement: {
@@ -58,7 +58,7 @@ const props = defineProps({
5858
default: false,
5959
required: false,
6060
},
61-
})
61+
});
6262
6363
const opened = ref(false);
6464
const popper = ref(null);
@@ -73,7 +73,7 @@ function hide() {
7373
7474
watch(opened, () => {
7575
popper.value.update();
76-
})
76+
});
7777
7878
const button = ref(null);
7979
const tooltip = ref(null);
@@ -83,7 +83,7 @@ onMounted(() => {
8383
placement: props.placement,
8484
modifiers: [flip, preventOverflow],
8585
});
86-
})
86+
});
8787
88-
defineExpose({ hide })
88+
defineExpose({ hide });
8989
</script>

Diff for: js/Components/OnClickOutside.vue

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
</template>
66

77
<script setup>
8-
import { ref, onMounted, onBeforeUnmount } from "vue"
8+
import { ref, onMounted, onBeforeUnmount } from "vue";
99
1010
const props = defineProps({
1111
do: {
@@ -28,10 +28,10 @@ onMounted(() => {
2828
2929
document.addEventListener("click", listener.value);
3030
document.addEventListener("touchstart", listener.value);
31-
})
31+
});
3232
3333
onBeforeUnmount(() => {
3434
document.removeEventListener("click", listener.value);
3535
document.removeEventListener("touchstart", listener.value);
36-
})
36+
});
3737
</script>

Diff for: js/Components/Pagination.vue

+6-6
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@
185185
</template>
186186

187187
<script setup>
188-
import PerPageSelector from "./PerPageSelector.vue"
188+
import PerPageSelector from "./PerPageSelector.vue";
189189
import { computed } from "vue";
190-
import { getTranslations } from "../translations.js"
190+
import { getTranslations } from "../translations.js";
191191
192192
const translations = getTranslations();
193193
@@ -199,14 +199,14 @@ const props = defineProps({
199199
perPageOptions: {
200200
type: Array,
201201
default() {
202-
return () => [15, 30, 50, 100]
202+
return () => [15, 30, 50, 100];
203203
},
204204
required: false
205205
},
206206
onPerPageChange: {
207207
type: Function,
208208
default() {
209-
return () => {}
209+
return () => {};
210210
},
211211
required: false,
212212
},
@@ -253,6 +253,6 @@ const nextPageUrl = computed(() => {
253253
});
254254
255255
const perPage = computed(() => {
256-
return parseInt(pagination.value.per_page)
257-
})
256+
return parseInt(pagination.value.per_page);
257+
});
258258
</script>

Diff for: js/Components/PerPageSelector.vue

+7-7
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
<script setup>
2020
import { computed } from "vue";
21-
import uniq from "lodash-es/uniq"
22-
import { getTranslations } from "../translations.js"
21+
import uniq from "lodash-es/uniq";
22+
import { getTranslations } from "../translations.js";
2323
2424
const translations = getTranslations();
2525
@@ -39,7 +39,7 @@ const props = defineProps({
3939
options: {
4040
type: Array,
4141
default() {
42-
return [15, 30, 50, 100]
42+
return [15, 30, 50, 100];
4343
},
4444
required: false,
4545
},
@@ -51,11 +51,11 @@ const props = defineProps({
5151
});
5252
5353
const perPageOptions = computed(() => {
54-
let options = [...props.options]
54+
let options = [...props.options];
5555
56-
options.push(parseInt(props.value))
56+
options.push(parseInt(props.value));
5757
58-
return uniq(options).sort((a, b) => a - b)
59-
})
58+
return uniq(options).sort((a, b) => a - b);
59+
});
6060
</script>
6161

0 commit comments

Comments
 (0)