我跟着docs并实现了这样的东西:
...
const config = {
mode: 'development',
devtool: 'inline-source-map',
};
const nodeConfig = merge(common, {
...config,
output: {
filename: 'bundle.node.js',
},
target: 'node',
});
const webConfig = merge(common, {
...config,
node: {
crypto: true,
},
output: {
filename: 'bundle.web.js',
},
target: 'web',
});
module.exports = [nodeConfig, webConfig];
但是,只有一个目标通过,我认为没有确定性的过程来确定构建哪个目标(即,有时构建Web目标,其他时候是节点目标)。
我不确定我在上面的配置中做错了什么,但我觉得有一些竞争条件,其中一个目标在另一个之前构建,因此节点进程在构建两个目标之前退出。是这样的吗?这是我的common config。
我正在使用的webpack版本是4.30.0
。
我整理出来了。在我的常见配置中,我使用的是clean-webpack-plugin:
plugins: [
new CleanWebpackPlugin(),
...
]
显然,在构建第二个目标时,干净的插件正在擦除第一个目标。
特别是如果你从CI部署,你真的不需要这个插件。