|
@ -1,69 +1,72 @@ |
|
|
import {defineConfig} from "vite"; |
|
|
|
|
|
import vue from "@vitejs/plugin-vue"; |
|
|
|
|
|
import AutoImport from 'unplugin-auto-import/vite'; |
|
|
|
|
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; |
|
|
|
|
|
import viteCompression from 'vite-plugin-compression'; |
|
|
|
|
|
import { resolve } from 'path'; |
|
|
|
|
|
|
|
|
import { resolve } from 'node:path' |
|
|
|
|
|
import vue from '@vitejs/plugin-vue' |
|
|
|
|
|
import AutoImport from 'unplugin-auto-import/vite' |
|
|
|
|
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' |
|
|
|
|
|
import { defineConfig } from 'vite' |
|
|
|
|
|
import viteCompression from 'vite-plugin-compression' |
|
|
|
|
|
import eslintPlugin from 'vite-plugin-eslint' |
|
|
|
|
|
|
|
|
const Timestamp = new Date().getTime(); |
|
|
|
|
|
|
|
|
const Timestamp = new Date().getTime() |
|
|
export default defineConfig({ |
|
|
export default defineConfig({ |
|
|
base: "./", |
|
|
|
|
|
envPrefix:"FT_", |
|
|
|
|
|
|
|
|
base: './', |
|
|
|
|
|
envPrefix: 'FT_', |
|
|
build: { |
|
|
build: { |
|
|
sourcemap: false, |
|
|
sourcemap: false, |
|
|
rollupOptions: { |
|
|
rollupOptions: { |
|
|
output: { |
|
|
output: { |
|
|
manualChunks(id) { |
|
|
manualChunks(id) { |
|
|
if (id.includes('node_modules')) { |
|
|
if (id.includes('node_modules')) { |
|
|
return id.toString().split('node_modules/')[1].split('/')[0].toString(); |
|
|
|
|
|
|
|
|
return id.toString().split('node_modules/')[1].split('/')[0].toString() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
chunkFileNames: chunkInfo => { |
|
|
|
|
|
|
|
|
chunkFileNames: (chunkInfo) => { |
|
|
const facadeModuleId = chunkInfo.facadeModuleId |
|
|
const facadeModuleId = chunkInfo.facadeModuleId |
|
|
? chunkInfo.facadeModuleId.split('/') |
|
|
|
|
|
: []; |
|
|
|
|
|
const fileName = facadeModuleId.slice(-2)[0] || '[name]'; |
|
|
|
|
|
return `js/${fileName}/[name].[hash].${Timestamp}.js`; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
? chunkInfo.facadeModuleId.split('/') |
|
|
|
|
|
: [] |
|
|
|
|
|
const fileName = facadeModuleId.slice(-2)[0] || '[name]' |
|
|
|
|
|
return `js/${fileName}/[name].[hash].${Timestamp}.js` |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
}, |
|
|
}, |
|
|
plugins: [ |
|
|
plugins: [ |
|
|
vue(), |
|
|
|
|
|
|
|
|
vue(), |
|
|
AutoImport({ |
|
|
AutoImport({ |
|
|
imports: ['vue', 'vue-router', { |
|
|
imports: ['vue', 'vue-router', { |
|
|
'vue': ['withModifiers'] |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
from: 'element-plus/es', |
|
|
|
|
|
imports: ['TabPaneName'], |
|
|
|
|
|
type: true, |
|
|
|
|
|
},], |
|
|
|
|
|
|
|
|
vue: ['withModifiers'], |
|
|
|
|
|
}, { |
|
|
|
|
|
from: 'element-plus/es', |
|
|
|
|
|
imports: ['TabPaneName'], |
|
|
|
|
|
type: true, |
|
|
|
|
|
}], |
|
|
dts: true, |
|
|
dts: true, |
|
|
eslintrc: { |
|
|
eslintrc: { |
|
|
enabled: true |
|
|
|
|
|
|
|
|
enabled: true, |
|
|
}, |
|
|
}, |
|
|
resolvers: [ElementPlusResolver({ importStyle: 'sass' })] |
|
|
|
|
|
|
|
|
resolvers: [ElementPlusResolver({ importStyle: 'sass' })], |
|
|
|
|
|
}), |
|
|
|
|
|
eslintPlugin({ |
|
|
|
|
|
cache: false, // 禁用缓存,以确保每次修改后都能及时生效
|
|
|
}), |
|
|
}), |
|
|
viteCompression({ |
|
|
viteCompression({ |
|
|
verbose: true, |
|
|
verbose: true, |
|
|
disable: false, |
|
|
disable: false, |
|
|
threshold: 10240, |
|
|
threshold: 10240, |
|
|
algorithm: 'gzip', |
|
|
algorithm: 'gzip', |
|
|
ext: '.gz' |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
ext: '.gz', |
|
|
|
|
|
}), |
|
|
], |
|
|
], |
|
|
resolve: { |
|
|
resolve: { |
|
|
alias: { |
|
|
alias: { |
|
|
'@': resolve(__dirname, 'src'), |
|
|
'@': resolve(__dirname, 'src'), |
|
|
apis: resolve(__dirname, 'src/apis'), |
|
|
|
|
|
assets: resolve(__dirname, 'src/assets'), |
|
|
|
|
|
components: resolve(__dirname, 'src/components'), |
|
|
|
|
|
hooks: resolve(__dirname, 'src/hooks'), |
|
|
|
|
|
libs: resolve(__dirname, 'src/libs'), |
|
|
|
|
|
store: resolve(__dirname, 'src/store'), |
|
|
|
|
|
views: resolve(__dirname, 'src/views'), |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
'apis': resolve(__dirname, 'src/apis'), |
|
|
|
|
|
'assets': resolve(__dirname, 'src/assets'), |
|
|
|
|
|
'components': resolve(__dirname, 'src/components'), |
|
|
|
|
|
'hooks': resolve(__dirname, 'src/hooks'), |
|
|
|
|
|
'libs': resolve(__dirname, 'src/libs'), |
|
|
|
|
|
'store': resolve(__dirname, 'src/store'), |
|
|
|
|
|
'views': resolve(__dirname, 'src/views'), |
|
|
|
|
|
}, |
|
|
}, |
|
|
}, |
|
|
// 本地化配置
|
|
|
// 本地化配置
|
|
|
server: { |
|
|
server: { |
|
@ -75,9 +78,9 @@ export default defineConfig({ |
|
|
'/api': { |
|
|
'/api': { |
|
|
target: 'http://localhost:8080', |
|
|
target: 'http://localhost:8080', |
|
|
// secure: false,
|
|
|
// secure: false,
|
|
|
changeOrigin: true, //是否跨域
|
|
|
|
|
|
rewrite: path => path.replace(/^\/api/, 'api') |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
changeOrigin: true, // 是否跨域
|
|
|
|
|
|
rewrite: path => path.replace(/^\/api/, 'api'), |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}) |