import { resolve } from 'path' import { defineConfig } from 'vite' import vue2 from '@vitejs/plugin-vue2' // import { visualizer } from 'rollup-plugin-visualizer' export default ({ mode }) => { return defineConfig({ base: mode === 'production' ? '/' : '/', plugins: [ vue2(), // visualizer({ // emitFile: true, // filename: 'stats.html', // }), ], resolve: { alias: { '@': resolve(__dirname, 'src'), }, // 官方文档不建议添加.vue, 这里加上是因为不自动忽略的话, src代码里面要改的地方太多了. https://cn.vitejs.dev/config/shared-options.html#resolve-extensions extensions: [ '.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json', '.vue', ], }, css: { devSourcemap: true, preprocessorOptions: { scss: { additionalData: `@import "/src/styles/variables.scss";`, }, }, }, server: { // 是否开启 https https: false, // 端口号 port: 9876, // 监听所有地址 host: '0.0.0.0', // 服务启动时是否自动打开浏览器. 在docker容器里面dev的话, 最好不要打开, 不然无法启动. // open: true, // 允许跨域 cors: true, // 自定义代理规则 proxy: { '/api': { target: 'http://13.55.42.195:10171', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), }, }, }, build: { // 设置最终构建的浏览器兼容目标 target: 'es2020', // 构建后是否生成 source map 文件 sourcemap: mode !== 'production', // 禁用则将css合并为单文件 cssCodeSplit: false, // chunk 大小警告的限制(以 kbs 为单位) chunkSizeWarningLimit: 1000, // 启用/禁用 gzip 压缩大小报告 reportCompressedSize: mode !== 'production', rollupOptions: { output: { manualChunks: { element: ['element-ui'] }, }, }, }, }) }