如何使用webpack构建多个目标?

问题描述 投票:2回答:1

我跟着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

node.js webpack webpack-4
1个回答
0
投票

我整理出来了。在我的常见配置中,我使用的是clean-webpack-plugin

plugins: [
    new CleanWebpackPlugin(),
    ...
]

显然,在构建第二个目标时,干净的插件正在擦除第一个目标。

特别是如果你从CI部署,你真的不需要这个插件。

© www.soinside.com 2019 - 2024. All rights reserved.