范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

如何减Webpack打包时间,优化Loader,HappyPack,DllPlugin,压缩

  问题:如何减少 Webpack 打包时间
  优化 Loader
  对于 Loader 来说,影响打包效率首当其冲必属 Babel 了。因为 Babel 会将代码转为字符串生成 AST,然后对 AST 继续进行转变最后再生成新的代码,项目越大,转换代码越多,效率就越低。当然有办法优化。
  首先我们可以优化 Loader 的文件搜索范围module.exports = {
  module: {
  rules: [
  {
  // js 文件才使用 babel
  test: /\.js$/,
  loader: "babel-loader",
  // 只在 src 文件夹下查找
  include: [resolve("src")],
  // 不会去查找的路径
  exclude: /node_modules/
  }
  ]
  }
  }
  对于 Babel 来说,我们肯定是希望只作用在 JS 代码上的,然后node_modules中使用的代码都是编译过的,所以我们也完全没有必要再去处理一遍。
  当然这样做还不够,我们还可以将 Babel 编译过的文件缓存起来,下次只需要编译更改过的代码文件即可,这样可以大幅度加快打包时间loader: "babel-loader?cacheDirectory=true"
  HappyPack
  受限于 Node 是单线程运行的,所以 Webpack 在打包的过程中也是单线程的,特别是在执行 Loader 的时候,长时间编译的任务很多,这样就会导致等待的情况。
  HappyPack 可以将 Loader 的同步执行转换为并行的,这样就能充分利用系统资源来加快打包效率了 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
  })
  ]
  DllPlugin
  DllPlugin 可以将特定的类库提前打包然后引入。这种方式可以极大的减少打包类库的次数,只有当类库更新版本才有需要重新打包,并且也实现了将公共代码抽离成单独文件的优化方案。
  接下来我们就来学习如何使用 DllPlugin// 单独配置在一个文件中
  // webpack.dll.conf.js
  const path = require("path")
  const webpack = require("webpack")
  module.exports = {
  entry: {
  // 想统一打包的类库
  vendor: ["react"]
  },
  output: {
  path: path.join(__dirname, "dist"),
  filename: "[name].dll.js",
  library: "[name]-[hash]"
  },
  plugins: [
  new webpack.DllPlugin({
  // name 必须和 output.library 一致
  name: "[name]-[hash]",
  // 该属性需要与 DllReferencePlugin 中一致
  context: __dirname,
  path: path.join(__dirname, "dist", "[name]-manifest.json")
  })
  ]
  }
  然后我们需要执行这个配置文件生成依赖文件,接下来我们需要使用DllReferencePlugin将依赖文件引入项目中// webpack.conf.js
  module.exports = {
  // ...省略其他配置
  plugins: [
  new webpack.DllReferencePlugin({
  context: __dirname,
  // manifest 就是之前打包出来的 json 文件
  manifest: require("./dist/vendor-manifest.json"),
  })
  ]
  }
  代码压缩
  在 Webpack3 中,我们一般使用UglifyJS来压缩代码,但是这个是单线程运行的,为了加快效率,我们可以使用webpack-parallel-uglify-plugin来并行运行UglifyJS,从而提高效率。
  在 Webpack4 中,我们就不需要以上这些操作了,只需要将mode设置为production就可以默认开启以上功能。代码压缩也是我们必做的性能优化方案,当然我们不止可以压缩 JS 代码,还可以压缩 HTML、CSS 代码,并且在压缩 JS 代码的过程中,我们还可以通过配置实现比如删除console.log这类代码的功能。
  一些小的优化点
  我们还可以通过一些小的优化点来加快打包速度
  resolve.extensions:用来表明文件后缀列表,默认查找顺序是[".js", ".json"],如果你的导入文件没有添加后缀就会按照这个顺序查找文件。我们应该尽可能减少后缀列表长度,然后将出现频率高的后缀排在前面
  resolve.alias:可以通过别名的方式来映射一个路径,能让 Webpack 更快找到路径
  module.noParse:如果你确定一个文件下没有其他依赖,就可以使用该属性让 Webpack 不扫描该文件,这种方式对于大型的类库很有帮助。

元宇宙真正的机会在哪里?元宇宙,有望成为下一个焦点吗?是否有机会转变成为长久的期待热点,是短炒还是存在它的中期内涵?元宇宙是一个虚拟时空间的集合,由一系列的增强现实(AR),虚拟现实(VR)和互联网(In华为手机升级了鸿蒙系统感觉越用越卡有没有人有同感?我的越好用了,省电还不发热小编有可能是收了黑钱出来黑华为的吧!我的手机升级鸿蒙系统后非常好用,非常流畅,希望所有的国产手机都用鸿蒙系统,怎么啦!气死你!我华为mate30Pro,鸿为什么做短视频的人越来越多,真的有收益吗?本人实测随着时代进步,科技发展,互联网行业不断更迭创新,越来越多的新兴行业层出不穷。某音,某手,各类小视频网站层出不穷,越来越多的人开始投入短视频项目,甚至有的人因为争夺热点大打出手前一段我为什么不看好电动汽车1,电动汽车严格来说不算真正新能源。2,充电桩问题,以我们社会主义的优越性都不能解决的充电问题你以为欧美能解决好?对于那些随便晒个被子,空调装的凌乱都会被警察找上门的国家安充电桩的沃尔玛辟谣,比特币被带崩,一小时跌超3300美元,13万人爆仓爆仓金额超42亿币圈大乌龙!与沃尔玛合作是假消息莱特币30涨幅回吐昨夜,加密货币市场有大事,一则沃尔玛将开放莱特币付款的消息引爆了币圈。这一消息最开是由莱特币官方账号转发,后来被彭博路透等多家外媒改进数据苹果地图成员穿着专门配备相机的背包行走在加拿大据报道,苹果地图团队成员将穿着专门配备相机的背包,在整个10月份走遍加拿大最大的三个城市多伦多蒙特利尔和温哥华,以帮助改进苹果地图应用。苹果通常会在世界各地驾驶一支车队来收集地图数工信部要求各平台,限期解除网址屏蔽限制,微信将能转发抖音链接相信很多人都发现了一个问题在抖音上看到一个非常好看或好玩的短视频,想要分享到微信朋友圈或微信群聊里,可是我们怎么做也做不到,因为现在的微信,禁止转发抖音视频的链接到微信。这对于喜欢华为mate系列目前为止哪一部最好用?正在用Mate9回复呲牙必须是mate20Pro,本人是重度手机使用者,华为手机从最早的D2,到第一款指纹手机mate7,一直用到mate20Pro,中间同时用过苹果三星以及荣耀的决不让步!中企起诉苹果侵权,却被美媒警告威胁苹果是全球最知名的手机品牌,也是一家实力强大的科技巨头,其自主研发的A系列处理器和iOS系统,一直都被视为业内楷模。也正是因为具有这两项核心优势,iPhone手机才能获得可观的销量9月13号华为鸿蒙系统用户破一亿,是不是代表国产系统已经崛起?国产鸿蒙必然会是一个经典,还会不断发展,会十亿二十亿三十亿的突破,也是中华崛起的必然!百年国运的事,必须支持。中国市场很重要是毫无疑问的!中国市场中新增设备的系统用户更重要生态环境重磅!微信抖音淘宝拼多多或打通链接在电商平台看到个好物件,想给朋友种草,但怎么也分享不了,甚至需要口令,既扫兴又麻烦?这种问题有望得到解决。13日,工信部表示,已要求企业按照整改要求,务实推动即时通信屏蔽网址链接等
Python入门题041比较两个列表的异同题目给出2个列表,1,2和2,3。输出他们的相同元素,和不同元素。结果分别为2和1,3pythonlist集合操作异或操作视频教程Python入门题041比较两个列表的异同代码1l我是真的不明白并且非常讨厌,现在的有些手机为什么用玻璃背壳,难道是自信的认为这样很帅?我曾经拿着iphone6,在高铁上电话打不出去,网也上不了。看着身边拿着华为的几位同事上网刷剧打电话都不耽误。我陷入了深深的思考中,装X却被同事取笑,说我买高档手机是拿来当装饰品的java提供的线程池java提供的线程池Java中默认实现好的线程池又有哪些呢?今天就给大家分享一下Java中默认实现了的线程池,废话不多说,我们就一起直接看一下吧。SingleThreadExecu为什么现在打滴滴越来越慢,好长时间打不到?为什么现在打滴滴越来越慢,好长时间打不到呢?我就是兼职跑滴滴的,下图为证,是我这几个月的流水我以滴滴司机的立场来谈谈原因,主要有以下几点司机没利润。由于平台派单规则,3公里以内都得为什么说光刻机难以制作?光刻机是芯片制造中必不可少的精密设备。其难度甚至超过航空发动机。首先是在技术上的难度光刻机可以说每个部件都是科技含量很高,步步困难重重。瓶颈主要集中在透镜掩膜版光源能量控制器等。下过几年计算机专业将烂大街呢,为什么?儿子今年大一计算机专业?计算机专业人才不会饱和,只是分工越来越细,要求越来越高,工资也会随着所从事的具体工作具体岗位而定。拿尖端的来说,华为够牛的吧,它还在不断地说需要芯片人才,需要创新人才。拿日常的来说三星GalaxyS22明年春节前后发布梦幻配置,苹果表示压力很大由于上一代三星GalaxyS21功耗发热问题饱受用户的吐槽,表示骁龙888发热非常严重,不少三星用户表示想等GalaxyS22,根据最新的消息称,三星GalaxyS22预计将在明年LCD永不为奴的背后究竟是什么前段时间,Redmi产品总监王腾在微博上与网友互动时的一句话引起了我的注意想要LCD旗舰可以考虑RedmiK30S至尊版,现在还有货。咋的,都2021年了还在推荐去年的旗舰呢?其实曝Windows11致使游戏性能暴跌,iPhone12让路新机跌至爱疯价Windows11正式发布,你更新了吗?如果您使用的是AMD锐龙处理器并且喜欢玩游戏,那么您应该等待。AMD和微软官方今天宣布了两个AMD处理器在Windows11系统上的兼容性问什么手机实用?过不了过久就是一年一度的双十一,手机厂商么每年都会发布自家双十一当天的从成绩,证明自己,国产手机现在基本都还停留在用出货量证明自己的层面,还没有哪一家开始用利润证明自己。往往在双十助听器只佩戴一个,跟人沟通时有障碍吗?如果你的听力有一只耳朵正常,那就可以戴一个,如果两个耳朵都有听力损失,那就必须要两个耳朵同时佩戴。双耳配戴可以提高语言的清晰度,听声音是立体声,假如你只带一个就好像用一只眼睛看世界