init
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
import { defineConfig, loadEnv } from 'vite';
|
||||
import vue from '@vitejs/plugin-vue';
|
||||
import path from 'path';
|
||||
import Components from 'unplugin-vue-components/vite';
|
||||
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
|
||||
import { AntdvLessPlugin, AntdvModifyVars } from 'stepin/lib/style/plugins';
|
||||
import viteCompression from 'vite-plugin-compression';
|
||||
const timestamp = new Date().getTime();
|
||||
const prodRollupOptions = {
|
||||
output: {
|
||||
chunkFileNames: (chunk) => {
|
||||
return 'assets/' + chunk.name + '.[hash]' + '.' + timestamp + '.js';
|
||||
},
|
||||
assetFileNames: (asset) => {
|
||||
const name = asset.name;
|
||||
if (name && (name.endsWith('.css') || name.endsWith('.js'))) {
|
||||
const names = name.split('.');
|
||||
const extname = names.splice(names.length - 1, 1)[0];
|
||||
return `assets/${names.join('.')}.[hash].${timestamp}.${extname}`;
|
||||
}
|
||||
return 'assets/' + asset.name;
|
||||
},
|
||||
},
|
||||
};
|
||||
// vite 配置
|
||||
export default ({ command, mode }) => {
|
||||
// 获取环境变量
|
||||
const env = loadEnv(mode, process.cwd());
|
||||
|
||||
return defineConfig({
|
||||
server: {
|
||||
host: "0.0.0.0",
|
||||
cors: true,
|
||||
port: 8001,
|
||||
open: false, //自动打开
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: env.VITE_API_URL,
|
||||
ws: true,
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\//, ''),
|
||||
},
|
||||
},
|
||||
hmr: true,
|
||||
},
|
||||
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': path.resolve(__dirname, 'src'),
|
||||
},
|
||||
},
|
||||
esbuild: {
|
||||
jsxFactory: 'h',
|
||||
jsxFragment: 'Fragment',
|
||||
},
|
||||
build: {
|
||||
sourcemap: false,
|
||||
chunkSizeWarningLimit: 2048,
|
||||
rollupOptions: mode === 'production' ? prodRollupOptions : {},
|
||||
},
|
||||
plugins: [
|
||||
vue({
|
||||
template: {
|
||||
transformAssetUrls: {
|
||||
img: ['src'],
|
||||
'a-avatar': ['src'],
|
||||
'stepin-view': ['logo-src', 'presetThemeList'],
|
||||
'a-card': ['cover'],
|
||||
},
|
||||
},
|
||||
}),
|
||||
Components({
|
||||
resolvers: [AntDesignVueResolver({ importStyle: mode === 'development' ? false : 'less' })],
|
||||
}),
|
||||
// viteCompression({
|
||||
// verbose: true, // 是否在控制台中输出压缩结果
|
||||
// disable: false,
|
||||
// threshold: 10240, // 如果体积大于阈值,将被压缩,单位为b,体积过小时请不要压缩,以免适得其反
|
||||
// algorithm: 'gzip', // 压缩算法,可选['gzip',' brotliccompress ','deflate ','deflateRaw']
|
||||
// ext: '.gz',
|
||||
// deleteOriginFile: true // 源文件压缩后是否删除(我为了看压缩后的效果,先选择了true)
|
||||
// }),
|
||||
],
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
less: {
|
||||
plugins: [AntdvLessPlugin],
|
||||
modifyVars: AntdvModifyVars,
|
||||
javascriptEnabled: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
// base: env.VITE_BASE_URL,
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user