|
|
|
|
import { fileURLToPath, URL } from "node:url";
|
|
|
|
|
|
|
|
|
|
import { defineConfig } from "vite";
|
|
|
|
|
import vue from "@vitejs/plugin-vue";
|
|
|
|
|
|
|
|
|
|
// element plus按需导入
|
|
|
|
|
import AutoImport from 'unplugin-auto-import/vite';
|
|
|
|
|
import Components from 'unplugin-vue-components/vite';
|
|
|
|
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
|
|
|
|
|
import { configCompressPlugin } from './build/vite/plugins/compress';
|
|
|
|
|
const path = require("path");
|
|
|
|
|
const resolve = function (dir: any) {
|
|
|
|
|
return path.join(__dirname, dir);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// https://vitejs.dev/config/
|
|
|
|
|
export default defineConfig({
|
|
|
|
|
|
|
|
|
|
plugins: [
|
|
|
|
|
vue(),
|
|
|
|
|
// element plus按需导入
|
|
|
|
|
AutoImport({
|
|
|
|
|
resolvers: [
|
|
|
|
|
//自动导入element plus相关函数
|
|
|
|
|
ElementPlusResolver()
|
|
|
|
|
]
|
|
|
|
|
}),
|
|
|
|
|
Components({
|
|
|
|
|
resolvers: [
|
|
|
|
|
//自动导入element plus组件
|
|
|
|
|
ElementPlusResolver()
|
|
|
|
|
]
|
|
|
|
|
}),
|
|
|
|
|
configCompressPlugin('gzip')
|
|
|
|
|
],
|
|
|
|
|
resolve: {
|
|
|
|
|
alias: {
|
|
|
|
|
"@": fileURLToPath(new URL("./src", import.meta.url))
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
css: {
|
|
|
|
|
preprocessorOptions: {
|
|
|
|
|
less: {
|
|
|
|
|
javascriptEnabled: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
build: {
|
|
|
|
|
// 规定触发警告的 chunk 大小。(以 kbs 为单位)
|
|
|
|
|
chunkSizeWarningLimit: 500,
|
|
|
|
|
// 指定生成静态资源的存放路径(相对于 build.outDir)。
|
|
|
|
|
assetsDir: "./assets",
|
|
|
|
|
// 小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求.单位 KB
|
|
|
|
|
assetsInlineLimit: 4096,
|
|
|
|
|
// 启用/禁用 CSS 代码拆分。当启用时,在异步 chunk 中导入的 CSS 将内联到异步 chunk 本身,并在其被加载时插入。
|
|
|
|
|
|
|
|
|
|
// 如果禁用,整个项目中的所有 CSS 将被提取到一个 CSS 文件中。
|
|
|
|
|
cssCodeSplit: true
|
|
|
|
|
// 分解块,将大块分解成更小的块
|
|
|
|
|
// rollupOptions: {
|
|
|
|
|
// output: {
|
|
|
|
|
// manualChunks(id) {
|
|
|
|
|
// if (id.includes('node_modules')) {
|
|
|
|
|
// return id.toString().split('node_modules/')[1].split('/')[0].toString();
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
// lintOnSave: true, // 是否开启eslint保存检测
|
|
|
|
|
// productionSourceMap: false, // 是否在构建生产包时生成sourcdeMap
|
|
|
|
|
// chainWebpack: config => {
|
|
|
|
|
// config.resolve.alias
|
|
|
|
|
// .set("@", resolve("src"))
|
|
|
|
|
// .set("@v", resolve("src/views"))
|
|
|
|
|
// .set("@c", resolve("src/components"))
|
|
|
|
|
// .set("@u", resolve("src/utils"))
|
|
|
|
|
// .set("@s", resolve("src/service")); /* 别名配置 */
|
|
|
|
|
// config.optimization.runtimeChunk("single");
|
|
|
|
|
// },
|
|
|
|
|
server: {
|
|
|
|
|
// host: "localhost",
|
|
|
|
|
/* 本地ip地址 */
|
|
|
|
|
//host: "192.168.1.107",
|
|
|
|
|
host: "0.0.0.0", //局域网和本地访问
|
|
|
|
|
port: 8080,
|
|
|
|
|
/* 自动打开浏览器 */
|
|
|
|
|
open: false,
|
|
|
|
|
/* 跨域代理 */
|
|
|
|
|
// proxy: {
|
|
|
|
|
// "/api": {
|
|
|
|
|
// /* 目标代理服务器地址 */
|
|
|
|
|
// target: "", //
|
|
|
|
|
// // target: "", //
|
|
|
|
|
// /* 允许跨域 */
|
|
|
|
|
// changeOrigin: true,
|
|
|
|
|
// ws: true,
|
|
|
|
|
// pathRewrite: {
|
|
|
|
|
// "^/api": ""
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
},
|
|
|
|
|
// 开发或生产环境服务的公共基础路径。合法的值包括以下几种:
|
|
|
|
|
// 绝对 URL 路径名,例如 /foo/
|
|
|
|
|
// 完整的 URL,例如 https://foo.com/
|
|
|
|
|
// 空字符串或 ./(用于嵌入形式的开发)
|
|
|
|
|
base: './'
|
|
|
|
|
});
|