-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvite.config.js
More file actions
124 lines (121 loc) · 4.88 KB
/
Copy pathvite.config.js
File metadata and controls
124 lines (121 loc) · 4.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import { defineConfig } from "vite";
import laravel from "laravel-vite-plugin";
import vue from "@vitejs/plugin-vue2";
import { glob } from "glob";
import copy from "rollup-plugin-copy";
import path from "path";
import autoprefixer from "autoprefixer";
import postcssRTLCSS from "postcss-rtlcss";
// The FleetCart version
const version = "4.3.1";
export default defineConfig(async ({ command, mode }) => {
return {
base: "",
plugins: [
laravel({
input: [
"resources/sass/install/main.scss",
"resources/js/install/main.js",
"modules/Admin/Resources/assets/sass/main.scss",
"modules/Admin/Resources/assets/js/main.js",
"modules/Admin/Resources/assets/js/app.js",
"modules/Admin/Resources/assets/sass/dashboard.scss",
"modules/Admin/Resources/assets/js/dashboard.js",
"modules/Order/Resources/assets/admin/sass/print.scss",
"modules/Storefront/Resources/assets/public/js/vendors/flatpickr.js",
"modules/Storefront/Resources/assets/public/sass/pages/_blog-post.scss",
// Identify assets through pattern matching
...(await glob([
"modules/*/Resources/assets/*/sass/main.scss",
"modules/*/Resources/assets/*/js/main.js",
"modules/*/Resources/assets/*/js/create.js",
"modules/*/Resources/assets/*/js/edit.js",
"modules/*/Resources/assets/*/*/sass/main.scss",
"modules/*/Resources/assets/*/*/js/create.js",
"modules/*/Resources/assets/*/*/js/edit.js",
"modules/*/Resources/assets/*/sass/auth.scss",
"modules/*/Resources/assets/*/js/auth.js",
])),
],
refresh: true,
}),
vue({
template: {
transformAssetUrls: {
base: null,
includeAbsolute: false,
},
},
}),
copy({
targets: [
{
src: [
"public/favicon.ico",
"node_modules/jquery/dist/jquery.min.js",
"node_modules/tinymce",
"node_modules/selectize/dist/js/standalone/selectize.min.js",
"node_modules/jstree/dist/jstree.min.js",
"node_modules/slick-carousel/slick/slick.min.js",
"modules/Admin/Resources/assets/images/*",
"modules/Storefront/Resources/assets/public/images/*",
],
dest: "public/build/assets",
},
{
src: "node_modules/line-awesome/dist/line-awesome/fonts",
dest: ["modules/Storefront/Resources/assets/public"],
},
],
copyOnce: true,
hook: command === "build" ? "writeBundle" : "buildStart",
}),
],
css: {
postcss: {
plugins: [
autoprefixer(),
postcssRTLCSS({
ltrPrefix: ".ltr",
rtlPrefix: ".rtl",
processKeyFrames: true,
}),
],
},
},
resolve: {
alias: {
vue: path.resolve(
__dirname,
"./node_modules/vue/dist/vue.esm.js"
),
"@admin": path.resolve(
__dirname,
"./modules/Admin/Resources/assets"
),
"@modules": path.resolve(__dirname, "./modules"),
},
},
build: {
sourcemap: mode === "development",
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes("node_modules")) {
return id
.toString()
.split("node_modules/")[1]
.split("/")[0]
.toString();
}
},
entryFileNames: `assets/[name]-[hash]-v${version}.js`,
chunkFileNames: `assets/[name]-[hash]-v${version}.js`,
assetFileNames: function () {
return `assets/[name]-[hash]-v${version}.[ext]`;
},
},
},
},
};
});