目的:当项目足够庞大时,提升打包速度,主要提升js打包速度
针对js处理工具即ESLint,Babel,Terser(js压缩)开启多进程同时处理js文件
// npm install thread-loader --save-dev
const os = require("os")
const { resolve } = require("path")
const TerserPlugin = require("terser-webpack-plugin");
// 获取cpu核数
const threads = os.cpus().length
module.exports = {
entry: "./src/index.js",
output: {
filename: "js/index.js",
path: resolve(__dirname, "dist"),
clean: true
},
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: [
{
loader: "thread-loader",
options: {
works: threads //开启的进程数量
}
},
{
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"]
}
}
]
}]
},
plugins: [
new ESLintPlugin({
context: path.resolve(__dirname, "src"),
exclude: "node_modules",
threads //开启多进程以及设置进程数量
}),
new TerserPlugin({
parallel: threads //开启多进程以及设置进程数量
})
],
mode: ""
}