import { defineConfig, loadEnv } from 'vite'; import { resolve } from 'path'; import presets from './presets/presets'; // https://vitejs.dev/config/ export default defineConfig((env) => { // env 环境变量 const viteEnv = loadEnv(env.mode, process.cwd()); return { base: viteEnv.VITE_BASE, // 插件 plugins: [presets(env)], // 别名设置 resolve: { alias: { '@': resolve(__dirname, './src'), // 把 @ 指向到 src 目录去 }, }, // 服务设置 server: { host: true, // host设置为true才可以使用network的形式,以ip访问项目 port: 8080, // 端口号 open: true, // 自动打开浏览器 cors: true, // 跨域设置允许 strictPort: true, // 如果端口已占用直接退出 // 接口代理 proxy: { '/api': { // 本地 8000 前端代码的接口 代理到 8888 的服务端口 target: 'http://localhost:8888/', changeOrigin: true, // 允许跨域 rewrite: (path) => path.replace('/api/', '/'), }, }, }, build: { reportCompressedSize: false, // 消除打包大小超过500kb警告 chunkSizeWarningLimit: 2000, minify: 'esbuild', assetsDir: 'static/assets', // 静态资源打包到dist下的不同目录 rollupOptions: { output: { chunkFileNames: 'static/js/[name]-[hash].js', entryFileNames: 'static/js/[name]-[hash].js', assetFileNames: 'static/[ext]/[name]-[hash].[ext]', }, }, }, css: { preprocessorOptions: { // 全局引入了 scss 的文件 scss: { additionalData: ` @import "@/assets/styles/variables.scss"; `, javascriptEnabled: true, }, }, }, }; });