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