nuxt.config.ts 2.3 KB

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