如何让Webpack以串行而不是并行的方式构建多个配置导出?

nwsw7zdq  于 2023-10-19  发布在  Webpack
关注(0)|答案(3)|浏览(143)

我使用Webpack的多配置导出功能来构建两组独立的bundle。这里的第二个配置(标记为serviceWorkerConfig)需要从第一个配置发出的文件。我天真地以为它们是串行运行的,因为它是一个数组,但我猜不是。

const { merge } = require('webpack-merge');
const bundleProcessor = require("./webpack.bundleProcessor.config.js")
const serviceWorkerConfig = require("./webpack.serviceWorker.config.js")

module.exports = (env, argv) => {
    return [
        merge(bundleProcessor,
            { mode: "development", }
        ),
        merge(serviceWorkerConfig, // requires file emitted from first configuration
            { mode: "development" }
        ),
    ];
};

我尝试像文档中给出的例子那样添加module.exports.parallelism = 1;,但这似乎对我不起作用。
有没有一种方法可以让Webpack以串行而不是并行的方式构建多个配置导出?

91zkwejq

91zkwejq1#

从我的经验来看,我做了类似的事情,
1.与Webpack配置类似,但返回一个dict,

{
   a: {configForA}, b: {configForB}
}

1.调用webpack两次

webpack NODE_ENV=a && webpack NODE_ENV=b

虽然这不是Webpack的一些设置,但它起作用了。不知道你是否尝试过,或者是否适合。

zsbz8rwp

zsbz8rwp2#

parallelism是要使用的CPU数量(您需要一个单线程CPU才能工作)。虽然maxConcurrentWorkers听起来很有前途,但这只能通过NodeJS API获得。除了webpack-chain似乎接近你所要求的.让我们面对它,一个不能合并一个单一的项目(如上面的例子所示-为了比较,docs)。如果必须进行合并,则应该是一个合并的配置,由该文件的配置组成,并与依赖于它的serviceWorkerConfig合并。
我认为,一个插件合并配置可能甚至不适合的工作.但是一个模块必须依赖于另一个模块。当被定义为library & externals时,它更倾向于表示依赖项,它显然存在,但从未被声明过。
一个简单的脚本(如@文博所建议的)可能确实是最少的努力......并且它还可以在两者之间检查/复制有问题的一个文件。

elcex8rz

elcex8rz3#

我认为Monorepo和它的应用程序依赖性将有助于您的情况

相关问题