nuxt.config.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. build: {
  64. rollupOptions: {
  65. // 开启产物文件分析
  66. // plugins: [visualizer({ open: true })],
  67. },
  68. },
  69. },
  70. runtimeConfig: {},
  71. app: {
  72. head: {
  73. htmlAttrs: {
  74. lang: "en",
  75. },
  76. },
  77. },
  78. });