美文网首页webpack
webpack4.0 抽取公共代码

webpack4.0 抽取公共代码

作者: 成熟稳重的李先生 | 来源:发表于2019-07-07 23:10 被阅读0次

这里对“公共代码”的解释是,再有多个入口时,抽离两个入口共有的依赖,将这些公共的部分单独打包
现在来模拟上述情况,新建a.js, b.js, other.js, index.js和other.js都引用a和b

//a.js
console.log("a~~~~~~~~~~~");
//b.js
console.log("b~~~~~~~~~~~");
//index.js, other.js(方便模拟,这俩个文件代码一样)
import "./a.js";
import "./b.js";
console.log("这是index.js"); // console.log("这是other.js");

打包:

1967135-9ecbec02a4970095.png

生成的index和other也分别把a和b打包在了各自体内,这样很浪费资源。webpack中的optimization字段中提供了splitChunks字段,就是为了抽离公共代码

// webpack.config.js
optimization: {
    minimizer: [
      ....
    ]
    splitChunks: {
      // 分割代码块(多页应用才会用到)
      cacheGroups: {
        //缓存组
        common: {
          // 公共的模块
          chunks: "initial", // 从开始处抽离,有多种配置,像异步模块什么的
          minSize: 0, // 最小大小
          minChunks: 2 //  引用次数
        }
      }
    }
  },

如果还要抽离第三方模块

optimization: {
    minimizer: [
      ...
    ]
    splitChunks: {
      // 分割代码块(多页应用才会用到)
      cacheGroups: {
        //缓存组
        common: {
          // 公共的模块
          chunks: "initial", // 从开始处抽离,有多种配置,像异步模块什么的
          minSize: 0, // 最小大小
          minChunks: 2 //  引用次数
        },
        vendor: {  // 此处为了抽离第三方的公共模块,比如jquery(前提是index和other都引入jquery了)
          priority: 1,  //权重, 如果不给这个字段,那么就此例来说,会先走上边的“common”,会把jquery和a.js,b.js合并在一个文件中。
                        //如果还有别的入口只使用jquery了,但是a和b对于它来说就是无用的。加上权重之后,会将第三方模块单独抽离
          test: /node_modules/,
          minSize: 0, // 最小大小
          chunks: "initial",
          minChunks: 2 //  引用次数
        }
      }
    }
  },

打包后:

1967135-ef2ede585e7b6dea.png

相关文章

  • webpack4.0 抽取公共代码

    这里对“公共代码”的解释是,再有多个入口时,抽离两个入口共有的依赖,将这些公共的部分单独打包现在来模拟上述情况,新...

  • Webpack如何抽取公共代码

    如果要彻底明白 Webpack如何抽取公共代码,就要设计一个场景来支持抽取公共代码的多种形式,能够从代码运行的结果...

  • 重复代码检测

    ---Mac 平台, Java代码检测示例 背景 开发中,如果有相同逻辑,应当根据实际情况抽取公共方法或者公共类,...

  • webpack4之splitChunks代码分割

    前言 webpack4.0使用splitChunks替代CommonsChunksPlugin插件进行代码分割,这...

  • Android布局的优化

    一、include标签:目的是提高代码的复用性,减少代码,将布局的公共部分抽取出来供其它布局使用。二、merge标...

  • 知网前端总结

    整个框架以sass为编译语言,抽取分离三部分:公共变量部分,mixins库部分,和代码部分。其中公共变量部分和mi...

  • spring boot项目实战之公共代码抽取

    在一个web项目内,会有很多重复性的代码,如果将共性代码进行提取并规范使用,对后续运维和开发是很有帮助的。下面我们...

  • Electron+Mobx+React 开发记录(一)

    > Contents 前言 开发环境搭建 引入Webpack4.0前端打包工具 Electron代码结构和代码热更...

  • Thymeleaf的公共代码的引用

    抽取公共代码 不阐述使用选择器的方式 在一个标签中加上属性th:fragment="",其中的值是引入代码块的名称...

  • Gradle 组件化配置

    用伪代码的方式看下,我们项目的结构 抽取Module 包含app的公共变量部分 首先根目录下的build.grad...

网友评论

    本文标题:webpack4.0 抽取公共代码

    本文链接:https://www.haomeiwen.com/subject/umqwhctx.html