javascript - Webpack 4 和 splitChunks - 将所有 vendor 代码移至单独的 block (动态导入的模块除外)

标签 javascript webpack module bundle webpack-splitchunks

我有一个如下所示的项目:

  • app.js
  • module1.js
  • 节点模块

module1 通过 import(/* webpackChunkName: 'module1' */'@path') 在 app.js 中动态导入。

我正在尝试配置 splitChunks 插件,以便它输出:

  1. 应用程序 block ,包括没有依赖项和包的源代码;
  2. module1 block ,其中包含动态导入模块的源代码和 Node_modules 所需的依赖项;
  3. vendor block ,包含来自node_modules的其余依赖项;

最好的方法是什么? 该应用程序只有一个条目,即 app.js

最佳答案

通过以下配置解决了这个问题。这里的关键是 vendor 缓存组中的chunks: inital

  optimization: {
    splitChunks: {
      chunks: 'all',
      maxInitialRequests: Infinity,
      minSize: 0,
      cacheGroups: {
        vendors: false,
        default: false,
        vendor: {
          chunks: 'initial',
          test: /[\\/]node_modules[\\/]/,
          name: 'vendor',
          reuseExistingChunk: true
        },
      },
    },

关于javascript - Webpack 4 和 splitChunks - 将所有 vendor 代码移至单独的 block (动态导入的模块除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63587130/

相关文章:

JavaScript 对象继承

javascript - SWF 不在 IE9 中呈现(但在 Chrome/FF 中呈现)

javascript - 滚动条未显示在屏幕上

reactjs - Webpack 5 & Jest - 类型 'toBeInTheDocument' 上不存在属性 'JestMatchers<HTMLElement>'

javascript - 如何在 webpack 中使用 babel-loader 选择性地处理 node_modules 中的代码?

typescript - 不要将 vendor 文件夹包含到 webpack/Typescript 中

python - 具有默认参数和命名空间的模块函数?

java - WebDriver 从 Javascript CSS 下拉菜单中选择选项在 IDE 中工作,而不是在代码中工作

module - 在 Rust 中公开嵌套模块

java - Maven文件夹布局: Should I place tests in the EAR or its sub-modules?