123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- const path = require("path");
- const isProduction = process.env.NODE_ENV === "production";
- function resolve(dir) {
- return path.join(__dirname, dir);
- }
- module.exports = {
- publicPath: "/",
- lintOnSave: true,
- productionSourceMap: false,
- parallel: require("os").cpus().length > 1,
- css: {
- extract: isProduction,
- sourceMap: false,
- loaderOptions: {
- sass: {
- prependData: `@import "@/assets/css/common.scss";`
- }
- }
- },
- devServer: {
- port: 9000,
- open: false,
- compress: false,
- overlay: {
- warnings: false,
- errors: true
- },
- disableHostCheck: true,
- proxy: {
- "/dev": {
- target: "http://127.0.0.1:8001",
- changeOrigin: true,
- pathRewrite: {
- "^/dev": ""
- }
- },
- "/ap": {
- target: "https://admin.cn.utools.club",
- changeOrigin: true,
- pathRewrite: {
- "^/ap": ""
- }
- },
- "/fz": {
- target: "http://xfz520231.utools.club",
- changeOrigin: true,
- pathRewrite: {
- "^/fz": ""
- }
- },
- "/oss-upload": {
- target: "https://cool-admin-pro.oss-cn-shanghai.aliyuncs.com",
- changeOrigin: true,
- pathRewrite: {
- "^/oss-upload": ""
- }
- },
- "/pro": {
- target: "https://show.cool-admin.com",
- changeOrigin: true,
- pathRewrite: {
- "^/pro": "/api"
- }
- }
- }
- },
- chainWebpack: (config) => {
- // svg
- config.module.rule("svg").uses.clear();
- config.module
- .rule("svg-sprite-loader")
- .test(/.svg$/)
- .exclude.add(/node_modules/)
- .end()
- .use("svg-sprite-loader")
- .loader("svg-sprite-loader")
- .options({
- symbolId: "[name]"
- });
- // 去掉元素之间空格
- config.module
- .rule("vue")
- .use("vue-loader")
- .loader("vue-loader")
- .tap((options) => {
- options.compilerOptions.preserveWhitespace = true;
- return options;
- })
- .end();
- // 移除 prefetch 插件
- config.plugins.delete("prefetch-index");
- // 移除 preload 插件,避免加载多余的资源
- config.plugins.delete("preload-index");
- // 设置别名
- config.resolve.alias.set("cool", resolve("cool"));
- // 生产模式下
- if (isProduction) {
- config.performance.set("hints", false);
- config.optimization.splitChunks({
- chunks: "all",
- cacheGroups: {
- // 公用模块抽离
- common: {
- chunks: "initial",
- minSize: 0,
- minChunks: 2
- },
- // 第三方库抽离
- vendor: {
- priority: 1,
- test: /node_modules/,
- chunks: "initial",
- minSize: 0,
- minChunks: 2
- }
- }
- });
- }
- }
- };
|