加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

性能优化篇---Webpack构建速度优化

发布时间:2019-03-17 18:44:43 所属栏目:优化 来源:keywords
导读:如何输出Webpack构建分析 输出Webpack构建信息的.json文件:webpack --profile --json starts.json --profile:记录构建中的耗时信息 --json:以json格式输出构建结果,最后只输出一个json文件(包含所有的构建信息) web可视化查看构建分析:得到了webpack

HappyPack并行构建优化

  •  核心原理:将webpack中最耗时的loader文件转换操作任务,分解到多个进程中并行处理,从而减少构建时间。
  •  HappyPack
  •  接入HappyPack

        1. 安装:npm i -D happypack

        2. 重新配置rules部分,将loader交给happypack来分配:

  1. const HappyPack = require('happypack');  
  2. const happyThreadPool = HappyPack.ThreadPool({size: 5}); //构建共享进程池,包含5个进程  
  3. ...  
  4. plugins: [  
  5.     // happypack并行处理  
  6.     new HappyPack({  
  7.         // 用唯一ID来代表当前HappyPack是用来处理一类特定文件的,与rules中的use对应  
  8.         id: 'babel',  
  9.         loaders: ['babel-loader?cacheDirectory'],//默认设置loader处理  
  10.         threadPool: happyThreadPool,//使用共享池处理  
  11.     }),  
  12.     new HappyPack({  
  13.         // 用唯一ID来代表当前HappyPack是用来处理一类特定文件的,与rules中的use对应  
  14.         id: 'css',  
  15.         loaders: [  
  16.             'css-loader',  
  17.             'postcss-loader',  
  18.             'sass-loader'],  
  19.             threadPool: happyThreadPool  
  20.     })  
  21. ],  
  22. module: {  
  23.     rules: [  
  24.     {  
  25.         test: /.(js|jsx)$/,  
  26.         use: ['happypack/loader?id=babel'],  
  27.         exclude: path.resolve(__dirname,' ./node_modules'),  
  28.     },  
  29.     {  
  30.         test: /.(scss|css)$/,  
  31.         //使用的mini-css-extract-plugin提取css此处,如果放在上面会出错  
  32.         use: [MiniCssExtractPlugin.loader,'happypack/loader?id=css'],  
  33.         include:[  
  34.             path.resolve(__dirname,'src'),  
  35.             path.join(__dirname, './node_modules/antd')  
  36.         ]  
  37.     },  
  •  参数:

        1. threads:代表开启几个子进程去处理这一类文件,默认是3个;

        2. verbose:是否运行HappyPack输出日志,默认true;

        3. threadPool:代表共享进程池,即多个HappyPack示例使用一个共享进程池中的子进程去处理任务,以防资源占有过多

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读