| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import { defineConfig, loadEnv } from 'vite';
- import createVitePlugins from './vite/plugins';
- import path from 'path';
- export default defineConfig(({ mode, command }) => {
- const env = loadEnv(mode, process.cwd());
- return {
- plugins: createVitePlugins(env, command === 'build'),
- base: env.VITE_APP_BASE,
- server: {
- // 允许IP访问
- host: '0.0.0.0',
- // 应用端口 (默认:3000)
- port: Number(env.VITE_APP_PORT),
- // 运行是否自动打开浏览器
- open: true,
- proxy: {
- /** 代理前缀为 /dev-api 的请求 */
- [env.VITE_APP_BASE_API]: {
- changeOrigin: true,
- // 接口地址
- target: env.VITE_APP_API_URL,
- rewrite: path => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), 'api'),
- },
- },
- },
- resolve: {
- alias: {
- // 设置路径
- '~': path.resolve(__dirname, './'),
- // 设置别名
- '@': path.resolve(__dirname, './src'),
- },
- },
- // 构建配置
- build: {
- chunkSizeWarningLimit: 2000, // 消除打包大小超过500kb警告
- minify: 'terser', // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效
- terserOptions: {
- compress: {
- keep_infinity: true, // 防止 Infinity 被压缩成 1/0,这可能会导致 Chrome 上的性能问题
- drop_console: true, // 生产环境去除 console
- drop_debugger: true, // 生产环境去除 debugger
- },
- format: {
- comments: false, // 删除注释
- },
- },
- rollupOptions: {
- output: {
- // manualChunks: {
- // "vue-i18n": ["vue-i18n"],
- // },
- // 用于从入口点创建的块的打包输出格式[name]表示文件名,[hash]表示该文件内容hash值
- entryFileNames: 'js/[name].[hash].js',
- // 用于命名代码拆分时创建的共享块的输出命名
- chunkFileNames: 'js/[name].[hash].js',
- // 用于输出静态资源的命名,[ext]表示文件扩展名
- assetFileNames: (assetInfo: any) => {
- const info = assetInfo.name.split('.');
- let extType = info[info.length - 1];
- // console.log('文件信息', assetInfo.name)
- if (/\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/i.test(assetInfo.name)) {
- extType = 'media';
- } else if (/\.(png|jpe?g|gif|svg)(\?.*)?$/.test(assetInfo.name)) {
- extType = 'img';
- } else if (/\.(woff2?|eot|ttf|otf)(\?.*)?$/i.test(assetInfo.name)) {
- extType = 'fonts';
- }
- return `${extType}/[name].[hash].[ext]`;
- },
- },
- },
- },
- };
- });
|