import vue from '@vitejs/plugin-vue'; //提供 Vue 3 单文件组件支持 import PkgConfig from "vite-plugin-package-config"; import OptimizationPersist from "vite-plugin-optimize-persist"; import path from 'path'; import inject from '@rollup/plugin-inject'; // 必须重要!效果和webpack.ProvidePlugin中相同 import { defineConfig, loadEnv } from 'vite'; // 帮手函数,这样不用 jsdoc 注解也可以获取类型提示 export default defineConfig(({ mode, command }) => { const root = process.cwd() // 获取 .env 文件里定义的环境变量 const env = loadEnv(mode, root) debugger const { VITE_APP_ENV } = env; console.log(`当前环境信息:`, mode) console.log(`ENV:`, env) return { plugins: [ vue(), PkgConfig(), OptimizationPersist(), // inject({//导致加载慢,和cesium引用一样,放到index.html // $: "jquery", // 这里会自动载入 node_modules 中的 jquery jquery全局变量 // jQuery: "jquery", // "windows.jQuery": "jquery" // }) ], // 部署生产环境和开发环境下的URL。 // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.ruoyi.vip/。 // 如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 // base: './', // base: VITE_APP_ENV === 'development' ? '/' : './', base: VITE_APP_ENV === 'development' ? '/' : '/sdjt/', resolve: { alias: { // 设置别名 '@': path.resolve(__dirname, './src') }, //导入时想要省略的扩展名列表 extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'] }, // 强制预构建插件包 optimizeDeps: { //检测需要预构建的依赖项 entries: [], //默认情况下,不在 node_modules 中的,链接的包不会预构建 include: ["@/common/store/widget"], exclude: [] //排除在优化之外 }, /* 全局变量 */ css: { // 指定传递给 CSS 预处理器的选项 preprocessorOptions: { scss: { additionalData: '@use "@/assets/styles/variables.scss" as *;' }, }, }, /* 服务器配置 */ server: { /* 端口 */ port: 3000, /* 地址 */ host: "0.0.0.0", /* 编译后是否打开浏览器 */ open: true, /* 是否开启https */ https: false, }, /* 打包配置 */ build: { /** * 设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值——'modules',这是指 支持原生 ES 模块的浏览器。 */ target: 'modules', /** * 指定输出路径(相对于 项目根目录). * @default 'dist' */ outDir: "dist", /** * 启用/禁用 CSS 代码拆分 */ cssCodeSplit: true, /** * 混淆器,terser构建后文件体积更小 */ minify: 'terser', // 混淆器,terser构建后文件体积更小 chunkSizeWarningLimit: 4500, // 自定义rollup-commonjs插件选项 commonjsOptions: { include: /node_modules|packages|src\/common\/store/ }, // 自定义底层的 Rollup 打包配置 rollupOptions: { }, }, }; });