node.js - 如何使用 webpack 构建多个目标?

标签 node.js webpack webpack-4

我关注了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 目标,有时构建了 Node 目标) )。

我不确定我在上面的配置中做错了什么,但我觉得存在一些竞争条件,一个目标先于另一个目标构建,因此 Node 进程在构建两个目标之前退出。是这样吗?这是我的common config .

我使用的 webpack 版本是 4.30.0

最佳答案

我已经整理好了。在我的通用配置中,我使用 clean-webpack-plugin :

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

显然,在构建第二个目标时,clean 插件正在删除第一个目标。

大多数时候,您并不真正需要这个插件,特别是当您从 CI 进行部署时。

关于node.js - 如何使用 webpack 构建多个目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55826856/

相关文章:

node.js - 如何捕获 Sequelize 连接错误

webpack - 在 webpack 中,path 和 publicPath 有什么区别

javascript - 如何在 NPM 包中使用 webpack 动态导入?

javascript - 我如何在构建期间获取 webpack block 哈希?

javascript - 如何使用 Webpack 在 Vue.js 单文件组件中导入 json 文件

javascript - "jQuery is not defined"在 Webpack 4 中使用 ES6 时需要/导入后

javascript - 如何复制文件夹中的文件进行构建?

node.js - 在 Heroku 上部署 React 应用和 API 的最佳实践

javascript - 如何传回数组

javascript - 我应该如何将同步node.js模块与mysql、socket功能一起应用?