跨构建共享 node_modules 块 (webpack)

时间:2021-02-15 02:27:57

标签: javascript webpack node-modules

我想设置一个 webpack.config 文件,该文件能够动态接受入口点并构建它们,同时将所有使用的节点模块作为块输出。例如,如果我们有:

// main-a.js
import { a, b, c } from 'node-module-a'
import hello from 'node-module-b'

我想要一个包含以下内容的输出文件夹:

  • main-a.js
  • node-module-a.js
  • node-module-b.js

请注意,node-module-a.js 还应包含其所有依赖项,以便 node-module-a 包含整个导入的库。因此,如果我将相同的 webpack 配置文件与另一个入口点一起使用,如下所示:

// main-b.js
import { b, d } from 'node-module-a'
import there from 'node-module-c'

我的输出文件夹现在将包含:

  • main-a.js
  • main-b.js
  • node-module-a.js
  • node-module-b.js
  • node-module-c.js

从浏览器加载 main-a.jsmain-b.js 应该可以正常工作。

我尝试了什么

我尝试使用 optimisation.splitChunks 选项来实现这一点,以检测 node_modules 并将它们放入自己的块中。这似乎有几个问题:

  • 它似乎不能可靠地与异步模块一起工作(但这可能只是配置错误)
  • 在生产构建中,第二个构建无法识别第一个构建中的模块

有没有更好的方法来实现这一目标?我得到提示,这不是 splitChunks 的设计目的。这里的目的是能够像使用模块一样使用我安装的 node_modules,因为我将有很多不同的入口点,并且不想在这些入口点中包含任何节点模块代码。

0 个答案:

没有答案
相关问题