webpack优化系列(9)-多进程打包

 场景

js是单线程,同一时间只能干一件事情,如果事情很多,那么就会排队等很久,时间慢。如果同一时间两个/三个进程干这件事情,那么速度就会快很多。 

thread-loader

开启多进程打包,一般用在babel-loader后面。

webpack配置如下:

module: {
    rules: [
        {
            test: /\.js$/,
            use: [{
                loader: 'thread-loader',
                options: {
                    workers: 2
                }
            },
            'babel-loader']
        }
    ]
}

但是使用多进程打包使用也有利有弊:

进程启动大概600ms,进程通信(告诉你某件事情我干好了)也有时间开销。

假设我们花100ms完成的事情,开启多进程打包,那么就会得不偿失。所以多进程打包用在:工 作消耗时间比较长,用直白的话说就是js代码多。

多进程打包一般用在js文件上面,那么有两个loader对js文件进行处理:

  • eslint-loader:只是对代码进行语法检查,消耗时间可能不是很长
  • babel-loader:要进行编译,转换,所以时间比较长,所以用在babel-loader里面

系列相关

Webpack 打包优化是提高应用性能和优化用户体验的重要手段之一。以下是一些常见的优化技巧: 1. 使用 Tree Shaking:Tree Shaking 是 Webpack 的一个特性,它可以删除没有使用的模块,从而减少打包体积。 2. 使用 Code Splitting:Code Splitting 是将应用程序拆分成更小的代码块,这些代码块可以按需加载,从而减少首次加载时间。 3. 压缩代码:压缩代码可以减少代码大小,从而加快加载速度。可以使用 Webpack 的 UglifyJS 插件来压缩代码。 4. 使用缓存:使用缓存可以减少请求次数,从而加快加载速度。可以使用 Webpack 的 cache-loader 插件来缓存模块。 5. 使用 DLLPlugin:DLLPlugin 是一个 Webpack 插件,它可以将常用的代码库打包成一个独立的文件,从而减少打包时间。 6. 使用 HappyPack:HappyPack 是一个 Webpack 插件,它可以将任务分解为多个子进程,从而加快打包速度。 7. 使用 ParallelUglifyPlugin:ParallelUglifyPlugin 是一个 Webpack 插件,它可以使用多个子进程并行压缩代码,从而加快打包速度。 8. 配置 babel-loader:babel-loader 是 Webpack 的一个 loader,可以将 ES6+ 代码转换为 ES5 代码,从而兼容更多的浏览器。 9. 配置 resolve:resolve 可以配置 Webpack 如何解析模块路径,从而减少搜索时间。 10. 使用 Webpack-bundle-analyzer:Webpack-bundle-analyzer 可以分析打包后的文件,从而找出哪些模块占用了过多的空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值