1- import { fileURLToPath , URL } from 'node:url' ;
1+ import { fileURLToPath , URL } from 'node:url'
22
3- import { defineConfig } from 'vite' ;
4- import vue from '@vitejs/plugin-vue' ;
3+ import { defineConfig } from 'vite'
4+ import vue from '@vitejs/plugin-vue'
55
66import viteCompression from 'vite-plugin-compression' ;
7- import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js' ;
8- import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite' ;
7+ import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
8+ import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
99
10- import path from 'path' ;
10+ import path from 'path'
1111
1212// example 'vite.user.ts': export const proxy_target = '192.168.16.107'
1313let proxy_target ;
@@ -19,80 +19,78 @@ try {
1919}
2020
2121// https://vitejs.dev/config/
22- export default defineConfig ( ( { command } ) => {
23- return {
24- plugins : [
25- vue ( ) ,
26- viteCompression ( { deleteOriginFile : true , threshold : 0 } ) ,
27- cssInjectedByJsPlugin ( ) ,
28- VueI18nPlugin ( {
29- /* options */
30- include : path . resolve ( path . dirname ( fileURLToPath ( import . meta. url ) ) , './src/locales/**.json' ) ,
31- runtimeOnly : false ,
32- fullInstall : false ,
33- forceStringify : true ,
34- strictMessage : false ,
35- } ) ,
36- ] ,
37- resolve : {
38- alias : {
39- '@' : fileURLToPath ( new URL ( './src' , import . meta. url ) ) ,
40- '~bootstrap' : path . resolve ( __dirname , 'node_modules/bootstrap' ) ,
41- } ,
42- } ,
43- build : {
44- // Prevent vendor.css being created
45- cssCodeSplit : false ,
46- outDir : '../webapp_dist' ,
47- emptyOutDir : true ,
48- minify : 'terser' ,
49- chunkSizeWarningLimit : 1024 ,
50- rollupOptions : {
51- output : {
52- // Only create one js file
53- inlineDynamicImports : true ,
54- // Get rid of hash on js file
55- entryFileNames : 'js/app.js' ,
56- // Get rid of hash on css file
57- assetFileNames : 'assets/[name].[ext]' ,
58- } ,
59- } ,
60- target : 'es2022' ,
61- } ,
62- esbuild : {
63- drop : command !== 'serve' ? [ 'console' , 'debugger' ] : [ ] ,
64- } ,
65- server : {
66- proxy : {
67- '^/api' : {
68- target : 'http://' + proxy_target ,
69- } ,
70- '^/livedata' : {
71- target : 'ws://' + proxy_target ,
72- ws : true ,
73- changeOrigin : true ,
74- } ,
75- '^/solarchargerlivedata' : {
76- target : 'ws://' + proxy_target ,
77- ws : true ,
78- changeOrigin : true ,
79- } ,
80- '^/batterylivedata' : {
81- target : 'ws://' + proxy_target ,
82- ws : true ,
83- changeOrigin : true ,
84- } ,
85- '^/gridchargerlivedata' : {
86- target : 'ws://' + proxy_target ,
87- ws : true ,
88- changeOrigin : true ,
89- } ,
90- '^/console' : {
91- target : 'ws://' + proxy_target ,
92- ws : true ,
93- changeOrigin : true ,
94- } ,
95- } ,
96- } ,
97- } ;
98- } ) ;
22+ export default defineConfig ( ( { command } ) => { return {
23+ plugins : [
24+ vue ( ) ,
25+ viteCompression ( { deleteOriginFile : true , threshold : 0 } ) ,
26+ cssInjectedByJsPlugin ( ) ,
27+ VueI18nPlugin ( {
28+ /* options */
29+ include : path . resolve ( path . dirname ( fileURLToPath ( import . meta. url ) ) , './src/locales/**.json' ) ,
30+ runtimeOnly : false ,
31+ fullInstall : false ,
32+ forceStringify : true ,
33+ strictMessage : false ,
34+ } ) ,
35+ ] ,
36+ resolve : {
37+ alias : {
38+ '@' : fileURLToPath ( new URL ( './src' , import . meta. url ) ) ,
39+ '~bootstrap' : path . resolve ( __dirname , 'node_modules/bootstrap' ) ,
40+ }
41+ } ,
42+ build : {
43+ // Prevent vendor.css being created
44+ cssCodeSplit : false ,
45+ outDir : '../webapp_dist' ,
46+ emptyOutDir : true ,
47+ minify : 'terser' ,
48+ chunkSizeWarningLimit : 1024 ,
49+ rollupOptions : {
50+ output : {
51+ // Only create one js file
52+ inlineDynamicImports : true ,
53+ // Get rid of hash on js file
54+ entryFileNames : 'js/app.js' ,
55+ // Get rid of hash on css file
56+ assetFileNames : "assets/[name].[ext]" ,
57+ } ,
58+ } ,
59+ target : 'es2022' ,
60+ } ,
61+ esbuild : {
62+ drop : command !== 'serve' ? [ 'console' , 'debugger' ] : [ ]
63+ } ,
64+ server : {
65+ proxy : {
66+ '^/api' : {
67+ target : 'http://' + proxy_target
68+ } ,
69+ '^/livedata' : {
70+ target : 'ws://' + proxy_target ,
71+ ws : true ,
72+ changeOrigin : true
73+ } ,
74+ '^/solarchargerlivedata' : {
75+ target : 'ws://' + proxy_target ,
76+ ws : true ,
77+ changeOrigin : true
78+ } ,
79+ '^/batterylivedata' : {
80+ target : 'ws://' + proxy_target ,
81+ ws : true ,
82+ changeOrigin : true
83+ } ,
84+ '^/gridchargerlivedata' : {
85+ target : 'ws://' + proxy_target ,
86+ ws : true ,
87+ changeOrigin : true
88+ } ,
89+ '^/console' : {
90+ target : 'ws://' + proxy_target ,
91+ ws : true ,
92+ changeOrigin : true
93+ }
94+ }
95+ }
96+ } } )
0 commit comments