base
This commit is contained in:
84
vite.config.js
Normal file
84
vite.config.js
Normal file
@@ -0,0 +1,84 @@
|
||||
import { fileURLToPath, URL } from "node:url";
|
||||
import AutoImport from "unplugin-auto-import/vite";
|
||||
import Components from "unplugin-vue-components/vite";
|
||||
import { VantResolver } from "@vant/auto-import-resolver";
|
||||
import { defineConfig } from "vite";
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
import vueJsx from "@vitejs/plugin-vue-jsx";
|
||||
import vueDevTools from "vite-plugin-vue-devtools";
|
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({
|
||||
server: {
|
||||
host: "0.0.0.0", // 设置为 0.0.0.0 允许局域网访问
|
||||
port: 5678, // 自定义端口号,可选
|
||||
strictPort: true, // 如果端口被占用则抛出错误而不是使用下一个可用端口
|
||||
proxy: {
|
||||
"/api/v1": {
|
||||
target: "http://127.0.0.1:8888", // 本地接口地址
|
||||
changeOrigin: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
build: {
|
||||
// 构建优化
|
||||
target: 'es2015', // 支持更多浏览器
|
||||
minify: 'terser', // 使用terser进行压缩
|
||||
terserOptions: {
|
||||
compress: {
|
||||
drop_console: true, // 移除console.log
|
||||
drop_debugger: true, // 移除debugger
|
||||
},
|
||||
},
|
||||
rollupOptions: {
|
||||
output: {
|
||||
// 代码分割策略
|
||||
manualChunks: {
|
||||
vendor: ['vue', 'vue-router', 'pinia'],
|
||||
vant: ['vant'],
|
||||
utils: ['axios', 'lodash', 'crypto-js'],
|
||||
charts: ['echarts', 'vue-echarts'],
|
||||
},
|
||||
// 文件名策略
|
||||
chunkFileNames: 'assets/js/[name]-[hash].js',
|
||||
entryFileNames: 'assets/js/[name]-[hash].js',
|
||||
assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
|
||||
},
|
||||
},
|
||||
// 启用CSS代码分割
|
||||
cssCodeSplit: true,
|
||||
// 设置资源内联阈值
|
||||
assetsInlineLimit: 4096,
|
||||
},
|
||||
plugins: [
|
||||
vue(),
|
||||
AutoImport({
|
||||
imports: [
|
||||
"vue", // 自动引入 Vue Composition API,如 ref、computed、onMounted 等
|
||||
"vue-router", // 自动引入 vue-router 中的方法,如 useRoute、useRouter 等(可选)
|
||||
"@vueuse/core", // 自动引入 VueUse 中的工具函数(可选)
|
||||
],
|
||||
dts: "src/auto-imports.d.ts", // 生成类型定义文件(可选)
|
||||
dirs: [
|
||||
"src/composables",
|
||||
"src/stores",
|
||||
"src/components",
|
||||
],
|
||||
resolvers: [VantResolver()],
|
||||
}),
|
||||
Components({
|
||||
resolvers: [VantResolver()],
|
||||
}),
|
||||
vueJsx(),
|
||||
// vueDevTools(),
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
||||
},
|
||||
},
|
||||
// 优化依赖预构建
|
||||
optimizeDeps: {
|
||||
include: ['vue', 'vue-router', 'pinia', 'vant', 'axios'],
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user