资讯专栏INFORMATION COLUMN

webpack4 optimization总结

RyanQ / 1055人阅读

摘要:总结默认为,效果就是压缩代码。主要就是根据不同的策略来分割打包出来的。同时分割同步和异步代码推荐。内部的参数可以和覆盖外部的参数。正则匹配文件优先级是否复用存在的匹配规则重写公用的次数重写文件名称强制生成文件名称分隔符号

optimization总结 minimize

默认为true,效果就是压缩js代码。

minimizer

可以自定义UglifyJsPlugin和一些配置,默认的压缩为uglifyjs-webpack-plugin

//比如在构建的时候,希望新增css的压缩
minimizer:
  mode === "development"
    ? []
    : [
        new UglifyJsPlugin({
          cache: true,
          parallel: true,
          sourceMap: mode === "development"
        }),
        new OptimizeCSSAssetsPlugin()
      ]
runtimeChunk

默认为false,runtime相关的代码(各个模块之间的引用和加载的逻辑)内嵌入每个entry

true:对于每个entry会生成runtime~${entrypoint.name}的文件。

"single": 会生成一个唯一多带带的runtime.js文件,就是manifest

multiple:和true一致。
name:{}:自定义runtime文件的name

noEmitOnErrors

默认为true,编译错误的时候是否不生成资源。

namedModules,namedChunks

development默认都为true,production默认为false,选择是否给modulechunk更有意义的名称。

nameModules:true这里会显示路径

nameModules:false直接采用索引自增

namedChunks:true

namedChunks:false采用索引

moduleIds

一般不建议配置namedModules,namedChunks
针对module的配置,这里会取hashed

针对chunk的配置,特别是异步代码一般会采用@vue-cli3推荐的插件

removeAvailableModules,removeEmptyChunks,mergeDuplicateChunks,flagIncludedChunks

这4个参数构建默认都是true,主要是用于构建优化,不需要改,基本就是字面意思。

splitChunks

主要就是根据不同的策略来分割打包出来的bundle
默认配置:

1.chunks

async(默认)

splitChunks:{
   chunks:"async"//分割异步打包的代码,
}

打包出b和vue两个chunk。

all:

splitChunks:{
   chunks:"all",//同时分割同步和异步代码,推荐。
   cacheGroup:{//默认的规则不会打包,需要多带带定义
     a: {
       test: /a.js/,
       chunks: "all",
       name: "a",
       enforce: true
     }
   }
}

initial

splitChunks:{
   chunks:"initial"//也会同时打包同步和异步,但是异步内部的引入不再考虑,直接打包在一起,会将vue和b的内容直接打包成chunk,
   cacheGroup:{//默认的规则不会打包,需要多带带定义
     a: {
       test: /a.js/,
       chunks: "all",
       name: "a",
       enforce: true
     }
   }
}

2.name
分割的js名称,默认为true,返回
${cacheGroup的key} ${automaticNameDelimiter} ${moduleName},可以自定义。

3.minChunks
最小公用模块次数,默认为1

4.minSize,maxSize,maxAsyncRequests(按需加载时候最大的并行请求数),maxInitialRequests(一个入口最大的并行请求数)
都为字面意思,一般不建议改。

5.cacheGroups
缓存策略,默认设置了分割node_modules和公用模块。内部的参数可以和覆盖外部的参数。
test 正则匹配文件
priority 优先级
reuseExistingChunk是否复用存在的chunk

   cacheGroup:{
     a: {
       test: /a.js/,//匹配规则
       minChunks:2,//重写公用chunks的次数
       chunks: "all",
       name: "a",//重写文件名称
       enforce: true //强制生成
     }
   }

6.automaticNameDelimiter
文件名称分隔符号~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108724.html

相关文章

  • webpack4 配置解析和实战

    摘要:特性比较热门的两大特性,零配置和速度快号称提速上限一般情况下,相比于低版本,场景下第三方依赖打包速度和场景下本地服务首次启动速度都得到显著提升零配置通过指定当前场景为开发模式还是生产模式,自动设置好当前场景的默认配置,用户即可马上使用,不需 webpack4特性 webpack4比较热门的两大特性,零配置和速度快(号称提速上限98%) 一般情况下,webpack4相比于低版本,prod...

    王笑朝 评论0 收藏0
  • webpack4配置之分享几个常用插件

    摘要:去做想做的事,去爱值得的人去成为自己喜欢的模样,去让自己发光浑身充满力量,充实的日子最美好各位早安,这里是平头哥联盟,我是首席填坑官苏南,用心分享一起成长做有温度的攻城狮。 showImg(https://segmentfault.com/img/bVbjIcs?w=1008&h=298); 前言   继上一次webpack的基础配置分享之后,本次将分享一些工作中项目常用的配置插件、也...

    Jackwoo 评论0 收藏0
  • webpack4使用笔记之plugin

    摘要:默认为根据自己的指定的模板文件来生成特定的文件主要是针对多入口文件。那么选项就可以决定是否都使用这些生成的文件。压缩压缩通过使用可以看到项目各模块的大小,可以按需优化图片来自于的 webpack4 常用plugin clean-webpack-plugin html-webpack-plugin mini-css-extract-plugin terser-webpack-plugi...

    ymyang 评论0 收藏0
  • 如何优雅的升级到 webpack4

    摘要:默认出入口在中,不再强制要求指定和路径。构建模式提供了两种构建模式可供选择和选项描述会将的值设为。如果是,那就会开启。默认只会对按需加载的代码做分割。在或更低版本中,如果你想为一个推导出来的定制选项,你不得不在自己的选项中将它重复一遍。 前言 现在距离2018年2月15号webpack4.0.0出来已经有一段时间了,现在已经出了 @vue/cli 3.0,但是楼主还没试过,听说很强大,...

    zhangfaliang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<