/**
* @ fileOverview vue配置项
* @module vue.config
* @version 1.0.1
*/
/* eslint-disable */
const path = require("path");
const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
const IsProduction = process.env.NODE_ENV === "production";
// 引入文件
function resolve(dir) {
return path.join(__dirname, dir)
}
module.exports = {
publicPath: "./",
outputDir: "dist",
devServer: {
compress: false, // 是否压缩
https: false,
proxy: {
'/test': {
target: 'http://172.0.0.1:38303' // 代理地址
},
}
},
css: {
loaderOptions: {
// 给 sass-loader 传递选项
sass: {
// @/ 是 src/ 的别名
// 所以这里假设你有 `src/variables.sass` 这个文件
// 注意:在 sass-loader v8 中,这个选项名是 "prependData"
// additionalData: `@import "~@/variables.sass"`
},
// 默认情况下 `sass` 选项会同时对 `sass` 和 `scss` 语法同时生效
// 因为 `scss` 语法在内部也是由 sass-loader 处理的
// 但是在配置 `prependData` 选项的时候
// `scss` 语法会要求语句结尾必须有分号,`sass` 则要求必须没有分号
// 在这种情况下,我们可以使用 `scss` 选项,对 `scss` 语法进行单独配置
scss: {
// additionalData: `@import "~@/variables.scss";`
},
// 给 less-loader 传递 Less.js 相关选项
less: {
// http://lesscss.org/usage/#less-options-strict-units `Global Variables`
// `primary` is global variables fields name
// 这里可以定义一下额外的全局变量,也可以直接定义在文件中
globalVars: {
},
javascriptEnabled: true,
},
},
chainWebpack: config => {
config.resolve.alias
.set("@", resolve("src"))
.set("@img", resolve("src/assets/img"))
.set("@api", resolve("src/api/api"));
if (IsProduction) {
// 删除预加载
config.plugins.delete("preload");
// 开启代码压缩
config.optimization.minimize(true);
// 分割代码 相同代码放一块
config.optimization.splitChunks({
chunks: "all"
});
}
// 开发环境
},
configureWebpack: config => {
if (IsProduction) {
config.plugins.push(
new UglifyJsPlugin({
uglifyOptions: {
compress: {
drop_debugger: true,
drop_console: true
},
sourceMap: false,
// 多进程
parallel: true
}
})
);
} else {
// 开发环境
}
},
productionSourceMap: false,
// 启动并行化 默认 ("os").cpus().length-1
parallel: require("os").cpus().length > 1,
};