vite.config.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import vue from '@vitejs/plugin-vue'; //提供 Vue 3 单文件组件支持
  2. import OptimizationPersist from "vite-plugin-optimize-persist";
  3. import PkgConfig from "vite-plugin-package-config";
  4. import path from 'path';
  5. import {
  6. defineConfig
  7. } from 'vite';
  8. // import postCssPxToRem from "postcss-pxtorem";
  9. // https://vitejs.dev/config/
  10. export default defineConfig({
  11. plugins: [vue()],
  12. plugins: [
  13. vue(),
  14. PkgConfig(),
  15. OptimizationPersist()
  16. ],
  17. // 部署生产环境和开发环境下的URL。
  18. // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.ruoyi.vip/。
  19. // 如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
  20. // base: './',
  21. base: process.env.NODE_ENV === 'production' ? './' : '/sdjn/',
  22. resolve: {
  23. alias: {
  24. // 设置别名
  25. '@': path.resolve(__dirname, './src')
  26. },
  27. //导入时想要省略的扩展名列表
  28. extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']
  29. },
  30. // 强制预构建插件包
  31. optimizeDeps: {
  32. //检测需要预构建的依赖项
  33. entries: [],
  34. //默认情况下,不在 node_modules 中的,链接的包不会预构建
  35. include: ["@/common/store/widget"],
  36. exclude: [] //排除在优化之外
  37. },
  38. /* 全局变量 */
  39. css: {
  40. // 指定传递给 CSS 预处理器的选项
  41. preprocessorOptions: {
  42. scss: {
  43. additionalData: '@use "@/assets/styles/variables.scss" as *;'
  44. },
  45. },
  46. // postcss: {
  47. // plugins: [
  48. // postCssPxToRem({
  49. // rootValue: 192, // (设计稿/10)1rem的大小
  50. // propList: ['*'], // 需要转换的属性,这里选择全部都进行转换
  51. // })
  52. // ]
  53. // }
  54. },
  55. /* 服务器配置 */
  56. server: {
  57. /* 端口 */
  58. port: 3000,
  59. /* 地址 */
  60. host: "0.0.0.0",
  61. /* 编译后是否打开浏览器 */
  62. open: true,
  63. /* 是否开启https */
  64. https: false,
  65. },
  66. /* 打包配置 */
  67. build: {
  68. /**
  69. * 设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值——'modules',这是指 支持原生 ES 模块的浏览器。
  70. */
  71. target: 'modules',
  72. /**
  73. * 指定输出路径(相对于 项目根目录).
  74. * @default 'dist'
  75. */
  76. outDir: "dist",
  77. /**
  78. * 启用/禁用 CSS 代码拆分
  79. */
  80. cssCodeSplit: true,
  81. /**
  82. * 混淆器,terser构建后文件体积更小
  83. */
  84. minify: 'terser', // 混淆器,terser构建后文件体积更小
  85. chunkSizeWarningLimit: 4500,
  86. // 自定义rollup-commonjs插件选项
  87. commonjsOptions: {
  88. include: /node_modules|packages|src\/common\/store/
  89. },
  90. rollupOptions: {
  91. output: {
  92. manualChunks(id) {
  93. if (id.includes('node_modules')) {
  94. return id.toString().split('node_modules/')[1].split('/')[0].toString();
  95. }
  96. }
  97. }
  98. }
  99. },
  100. })