1、Webpack性能优化 一、能够减小webpack打包时间 二、能够减小webpack打出来包体积 优化loader 对于 Loader 来讲,影响打包效率首当其冲必属 Babel 了。由于 Babel
会将代码转为字符串生成 AST ,而后对 AST 继续进行转变最后再生成新的
代码,项目越大,转换代码越多,效率就越低。固然了,咱们是有办法优化的
优化 Loader 的文件搜索范围node
module.exports = {
module: {
rules: [
{
// js 文件才使用 babel
test: /.js$/,
loader: 'babel-loader',
// 只在 src 文件夹下查找
include: [resolve('src')],
// 不会去查找的路径
exclude: /node_modules/
}
]
}webpack
固然这样作还不够,咱们还能够将 Babel 编译过的文件缓存起来,下次只须要编译更改
过的代码文件便可,这样能够大幅度加快打包时间
二 、HappyPack
因为受限于 Node 是单线程运行的,因此 Webpack 在打包的过程当中也是单线程
的,特别是在执行 Loader 的时候,长时间编译的任务不少,这样就会致使等
待的状况。HappyPack 能够将 Loader 的同步执行转换为并行的,这样就能充分利用系
统资源来加快打包效率了
如
module: {
loaders: [
{
test: /.js$/,
include: [resolve('src')],
exclude: /node_modules/,
// id 后面的内容对应下面
loader: 'happypack/loader?id=happybabel'
}
] },
plugins: [
new HappyPack({
id: 'happybabel',
loaders: ['babel-loader?cacheDirectory'],
// 开启 4 个线程
threads: 4
})
]
等web