vite.config.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import vue from '@vitejs/plugin-vue'; //提供 Vue 3 单文件组件支持
  2. import PkgConfig from "vite-plugin-package-config";
  3. import OptimizationPersist from "vite-plugin-optimize-persist";
  4. import path from 'path';
  5. import inject from '@rollup/plugin-inject'; // 必须重要!效果和webpack.ProvidePlugin中相同
  6. import {
  7. defineConfig,
  8. loadEnv
  9. } from 'vite'; // 帮手函数,这样不用 jsdoc 注解也可以获取类型提示
  10. export default defineConfig(({
  11. mode,
  12. command
  13. }) => {
  14. const root = process.cwd()
  15. // 获取 .env 文件里定义的环境变量
  16. const env = loadEnv(mode, root)
  17. debugger
  18. const {
  19. VITE_APP_ENV
  20. } = env;
  21. console.log(`当前环境信息:`, mode)
  22. console.log(`ENV:`, env)
  23. return {
  24. plugins: [
  25. vue(),
  26. PkgConfig(),
  27. OptimizationPersist(),
  28. // inject({//导致加载慢,和cesium引用一样,放到index.html
  29. // $: "jquery", // 这里会自动载入 node_modules 中的 jquery jquery全局变量
  30. // jQuery: "jquery",
  31. // "windows.jQuery": "jquery"
  32. // })
  33. ],
  34. // 部署生产环境和开发环境下的URL。
  35. // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.ruoyi.vip/。
  36. // 如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
  37. // base: './',
  38. // base: VITE_APP_ENV === 'development' ? '/' : './',
  39. base: VITE_APP_ENV === 'development' ? '/' : '/sdjt/',
  40. resolve: {
  41. alias: {
  42. // 设置别名
  43. '@': path.resolve(__dirname, './src')
  44. },
  45. //导入时想要省略的扩展名列表
  46. extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']
  47. },
  48. // 强制预构建插件包
  49. optimizeDeps: {
  50. //检测需要预构建的依赖项
  51. entries: [],
  52. //默认情况下,不在 node_modules 中的,链接的包不会预构建
  53. include: ["@/common/store/widget"],
  54. exclude: [] //排除在优化之外
  55. },
  56. /* 全局变量 */
  57. css: {
  58. // 指定传递给 CSS 预处理器的选项
  59. preprocessorOptions: {
  60. scss: {
  61. additionalData: '@use "@/assets/styles/variables.scss" as *;'
  62. },
  63. },
  64. },
  65. /* 服务器配置 */
  66. server: {
  67. /* 端口 */
  68. port: 3000,
  69. /* 地址 */
  70. host: "0.0.0.0",
  71. /* 编译后是否打开浏览器 */
  72. open: true,
  73. /* 是否开启https */
  74. https: false,
  75. },
  76. /* 打包配置 */
  77. build: {
  78. /**
  79. * 设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值——'modules',这是指 支持原生 ES 模块的浏览器。
  80. */
  81. target: 'modules',
  82. /**
  83. * 指定输出路径(相对于 项目根目录).
  84. * @default 'dist'
  85. */
  86. outDir: "dist",
  87. /**
  88. * 启用/禁用 CSS 代码拆分
  89. */
  90. cssCodeSplit: true,
  91. /**
  92. * 混淆器,terser构建后文件体积更小
  93. */
  94. minify: 'terser', // 混淆器,terser构建后文件体积更小
  95. chunkSizeWarningLimit: 4500,
  96. // 自定义rollup-commonjs插件选项
  97. commonjsOptions: {
  98. include: /node_modules|packages|src\/common\/store/
  99. },
  100. // 自定义底层的 Rollup 打包配置
  101. rollupOptions: {
  102. },
  103. },
  104. };
  105. });