import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; import ElementPlus from "unplugin-element-plus/vite"; // import { visualizer } from 'rollup-plugin-visualizer' export default defineNuxtConfig({ css: [ "@/assets/style/variable.scss", "@/assets/style/reset.scss", "@/assets/style/base.scss", "@/assets/iconfont/iconfont.css", // "element-plus/dist/index.css", ], modules: ["@pinia/nuxt"], vite: { // Vite 在开发模式下会对第三方依赖(node_modules)做一次 预打包(pre-bundling),以便提高运行时性能。 optimizeDeps: { include: [ "element-plus", "axios", "qs", "pinia", "pinia-plugin-persistedstate", "@gtm-support/vue-gtm", "vue3-google-map", "vue3-slide-verify", "qrcanvas", ], }, // SSR 打包时被内联进产物,而不是被当成外部依赖由 Node 直接加载 ssr: { noExternal: ["@popperjs/core", "element-plus"], }, css: { preprocessorOptions: { scss: { additionalData: '@use "@/assets/style/theme.scss" as *;', quietDeps: true, // 禁用 Deprecation Warning }, }, }, plugins: [ ElementPlus({}), // 自动按需引入样式 AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], server: { proxy: { "/api": { target: "http://54.46.9.88:8001/", changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ""), }, }, hmr: { overlay: false, // 关闭 HMR 警告/错误弹窗 }, }, build: { rollupOptions: { // 开启产物文件分析 // plugins: [visualizer({ open: true })], }, }, }, runtimeConfig: {}, app: { head: { htmlAttrs: { lang: "en", }, }, }, });