const { defineConfig } = require("@vue/cli-service");
|
const webpack = require("webpack");
|
// 获取所有书籍列表
|
const bookList = process.env.VUE_APP_BOOK_LIST
|
? process.env.VUE_APP_BOOK_LIST.split("/")
|
: [];
|
module.exports = defineConfig({
|
publicPath: process.env.VUE_APP_PUBLIC_PATH,
|
transpileDependencies: true,
|
lintOnSave: false,
|
devServer: {
|
open: true,
|
historyApiFallback: true,
|
allowedHosts: "all",
|
headers: {
|
"access-control-allow-origin": "*",
|
},
|
client: {
|
overlay: { warnings: false, errors: true },
|
},
|
},
|
configureWebpack: {
|
output: {
|
library: `app-content`,
|
libraryTarget: "umd",
|
chunkLoadingGlobal: `webpackJsonp_app-content`,
|
},
|
plugins: [
|
new webpack.IgnorePlugin({
|
checkResource(resource) {
|
if (process.env.VUE_APP_ENV == "product") {
|
// 编译和打包过滤
|
for (let i = 0; i < bookList.length; i++) {
|
const bookName = bookList[i];
|
if (bookName != process.env.VUE_APP_BOOK_ID) {
|
// 过滤不需要的模块
|
if (resource.indexOf(bookName) > -1) {
|
return true;
|
}
|
}
|
}
|
}
|
return false;
|
},
|
}),
|
],
|
},
|
chainWebpack: (config) => {
|
config.module
|
.rule("change-prefix")
|
.test(/\.js$/)
|
.include.add("/node_modules/element-ui/lib")
|
.end()
|
.use("change-prefix")
|
.loader("change-prefix-loader")
|
.options({
|
prefix: "el-",
|
replace: "gp-",
|
})
|
.end();
|
// svg图标加载
|
config.module
|
.rule("svg")
|
.exclude.add(path.join(__dirname, "src/assets/icons/svg"))
|
.end();
|
|
config.module
|
.rule("icons") // 定义一个名叫 icons 的规则
|
.test(/\.svg$/) // 设置 icons 的匹配正则
|
.include.add(path.join(__dirname, "src/assets/icons/svg")) // 设置当前规则的作用目录,只在当前目录下才执行当前规则
|
.end()
|
.use("svg-sprite") // 指定一个名叫 svg-sprite 的 loader 配置
|
.loader("svg-sprite-loader") // 该配置使用 svg-sprite-loader 作为处理 loader
|
.options({
|
// 该 svg-sprite-loader 的配置
|
symbolId: "icon-[name]",
|
})
|
.end();
|
},
|
});
|
|
const path = require("path");
|