vite.config.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import {
  2. defineConfig
  3. } from 'vite'
  4. import {
  5. fileURLToPath,
  6. URL
  7. } from 'node:url'
  8. import vue from '@vitejs/plugin-vue'
  9. import VueSetupExtend from 'vite-plugin-vue-setup-extend'
  10. import AutoImport from 'unplugin-auto-import/vite'
  11. import Components from 'unplugin-vue-components/vite'
  12. import {
  13. ElementPlusResolver
  14. } from 'unplugin-vue-components/resolvers'
  15. import {
  16. createStyleImportPlugin,
  17. ElementPlusResolve,
  18. } from "vite-plugin-style-import"; // 下载 vite-plugin-style-import 如遇到 Error: Cannot find module 'consola' 因为插件的使用了 consola 包,但是我们没有安装.所以需要安装 consola
  19. const packageJson = require('./package.json')
  20. const addr = ''
  21. // https://vitejs.dev/config/
  22. // const webpack = require('webpack')
  23. // module.exports = {
  24. // // 在vue.config.js中configureWebpack中配置
  25. // // 要引入webpack
  26. // configureWebpack: {
  27. // plugins: [
  28. // new webpack.ProvidePlugin({
  29. // 'window.Quill': 'quill/dist/quill.js',
  30. // Quill: 'quill/dist/quill.js'
  31. // })
  32. // ]
  33. // }
  34. // }
  35. export default defineConfig(({
  36. mode,
  37. command
  38. }) => {
  39. const CONSTANTS = {
  40. BUILDTIME: Math.floor(Date.now() / 1000),
  41. VERSION: packageJson.version,
  42. SHOULD_REMOVE_DEBUG_INFOS: ["production"].includes(mode),
  43. };
  44. return {
  45. base: `${process.env.NODE_ENV === 'prod' ? addr : ''}./`,
  46. plugins: [
  47. vue(),
  48. VueSetupExtend(),
  49. // 解决element-Puls自动引入部分样式不生效问题
  50. createStyleImportPlugin({
  51. resolves: [ElementPlusResolve()],
  52. }),
  53. AutoImport({
  54. resolvers: [ElementPlusResolver()],
  55. }),
  56. Components({
  57. resolvers: [ElementPlusResolver()],
  58. }),
  59. ],
  60. build: {
  61. rollupOptions: {
  62. output: {
  63. // 打包分支创建版本号
  64. assetFileNames: `assets/[name].[hash].${CONSTANTS.VERSION}.[extname]`,
  65. chunkFileNames: `assets/[name].[hash].${CONSTANTS.VERSION}.js`,
  66. },
  67. },
  68. },
  69. esbuild: {
  70. drop: CONSTANTS.SHOULD_REMOVE_DEBUG_INFOS ? ["console", "debugger"] : [],
  71. },
  72. resolve: {
  73. alias: {
  74. "@": fileURLToPath(new URL("./src",
  75. import.meta.url)),
  76. },
  77. },
  78. server: {
  79. proxy: {
  80. '/api': {
  81. target: 'http://debugapi.mashangyl.com',
  82. pathRewrite: {
  83. '^/api': ''
  84. },
  85. changeOrigin: true,
  86. },
  87. },
  88. cors: true,
  89. }
  90. }
  91. })