nuxt.config.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import AutoImport from "unplugin-auto-import/vite";
  2. import Components from "unplugin-vue-components/vite";
  3. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
  4. import ElementPlus from "unplugin-element-plus/vite";
  5. // import { visualizer } from 'rollup-plugin-visualizer'
  6. export default defineNuxtConfig({
  7. css: [
  8. "@/assets/style/variable.scss",
  9. "@/assets/style/reset.scss",
  10. "@/assets/style/base.scss",
  11. "@/assets/iconfont/iconfont.css",
  12. // "element-plus/dist/index.css",
  13. ],
  14. modules: ["@pinia/nuxt"],
  15. vite: {
  16. // Vite 在开发模式下会对第三方依赖(node_modules)做一次 预打包(pre-bundling),以便提高运行时性能。
  17. optimizeDeps: {
  18. include: [
  19. "element-plus",
  20. "axios",
  21. "qs",
  22. "pinia",
  23. "pinia-plugin-persistedstate",
  24. "@gtm-support/vue-gtm",
  25. "vue3-google-map",
  26. "vue3-slide-verify",
  27. "qrcanvas",
  28. ],
  29. },
  30. // SSR 打包时被内联进产物,而不是被当成外部依赖由 Node 直接加载
  31. ssr: {
  32. noExternal: ["@popperjs/core", "element-plus"],
  33. },
  34. css: {
  35. preprocessorOptions: {
  36. scss: {
  37. additionalData: '@use "@/assets/style/theme.scss" as *;',
  38. quietDeps: true, // 禁用 Deprecation Warning
  39. },
  40. },
  41. },
  42. plugins: [
  43. ElementPlus({}), // 自动按需引入样式
  44. AutoImport({
  45. resolvers: [ElementPlusResolver()],
  46. }),
  47. Components({
  48. resolvers: [ElementPlusResolver()],
  49. }),
  50. ],
  51. server: {
  52. proxy: {
  53. "/api": {
  54. target: "http://54.46.9.88:8001/",
  55. changeOrigin: true,
  56. rewrite: (path) => path.replace(/^\/api/, ""),
  57. },
  58. },
  59. hmr: {
  60. overlay: false, // 关闭 HMR 警告/错误弹窗
  61. },
  62. },
  63. // 👇 开发环境强制打成一个 chunk
  64. build:
  65. process.env.NODE_ENV === "development"
  66. ? {
  67. rollupOptions: {
  68. output: {
  69. manualChunks: () => "index.js", // 所有打进一个 chunk
  70. },
  71. },
  72. }
  73. : undefined,
  74. // {
  75. // rollupOptions: {
  76. // plugins: [visualizer({ open: true })],
  77. // },
  78. // },
  79. },
  80. runtimeConfig: {},
  81. app: {
  82. head: {
  83. htmlAttrs: {
  84. lang: "en",
  85. },
  86. },
  87. },
  88. // plugins: ["~/plugins/vue-warn-handler.js"],
  89. build: {
  90. // transpile: ["element-plus"],
  91. },
  92. });