整体配置
const build7z = true,
baseURL = 'http://',
devPort=5502
module.exports = {
baseUrl: process.env.NODE_ENV === 'production' ?'./' :'./',
outputDir:'dist',
assetsDir: '',
indexPath: "index.html",
pages: undefined,
lintOnSave:true,
runtimeCompiler: true,
transpileDependencies:[],
productionSourceMap: false,
configureWebpack() {
return {
resolve: {
alias: {
"~": resolve("."),
"@": resolve("src")
}
}
};
},
chainWebpack(config) {
config.resolve.alias
.set("~", resolve("."))
.set("@", resolve("src"));
config.module.rule("svg").exclude.add(resolve("src/icon"));
config.module
.rule("icons")
.test(/\.svg$/)
.include.add(resolve("src/icon"))
.end()
.use("svg-sprite-loader")
.loader("svg-sprite-loader")
.options({ symbolId: "vab-icon-[name]" })
.end();
config.when(process.env.NODE_ENV === "production", (config) => {
if (build7z)
config.plugin("fileManager").use(FileManagerPlugin, [
{
events: {
onEnd: {
archive: [
{
source: `./${outputDir}`,
destination: `./${zipName}.zip`
}
]
}
}
}
]);
});
},
css: {
extract: process.env.NODE_ENV === "production",
sourceMap: false,
loaderOptions: {
sass: {
additionalData(content, loaderContext) {
const { resourcePath, rootContext } = loaderContext;
const relativePath = path.relative(rootContext, resourcePath);
if (
relativePath.replace(/\\/g, "/") !==
"src/styles/variables/variables.scss"
) {
return (
`@use "sass:math"; @import src/styles/variables/variables.scss";` +
content
);
}
return content;
}
}
}
},
devServer: {
host: 'localhost',
port: devPort,
disableHostCheck: true,
noInfo: false,
overlay: {
warnings: true,
errors: true,
},
proxy: {
['/api']: {
target: baseURL,
ws: true,
changeOrigin: true,
logLevel: 'debug',
pathRewrite: {
'^/api': '/api/',
},
},
},
},
pwa: {},
pluginOptions: {
}
};