首页 > 解决方案 > Webpack - 如何确定在 webpack 中构建的目标是哪个项目

问题描述

我正在构建基于 Monorepo/NX(nrwl) 和微前端架构的新项目。我已经提取了 webpack 配置来构建 Angular 项目。可能有几个角度项目并使用 nx 命令nx build [target]我进行构建。

在 webpack config 里面,我根据很多自定义操作使用了返回函数。在函数中发送两个参数配置和选项。与在 monorepo 中为每个项目分开的 package.json 不同,有一个名为 workspace.json 的共享文件,它包含所有配置。因此,当我运行nx build [target]时,它会转到 workspace.json,查找相应的项目并运行构建器。

根据自定义 webpack 配置,第一个问题是所有 main.js 构建在全局对象中都有 webpackJsonp 键,因为我将几个微应用程序作为 Web 组件加载,它们具有相同的键 (webpackJsonp) 并相互覆盖。但我用这行代码解决了这个问题

config.output.jsonpFunction = 'webpackJsonp_' + Math.random().toString(36).substring(7);

但是现在,我想运行几个 shell 命令将捆绑包合并为一个捆绑包,并将合并的捆绑包移动到我的引导程序所在的目录。

因为所有包都存储在 dist 文件夹中,nx 自动将文件夹分开,所以我想从自定义 webpack 配置中访问这些文件夹,以便能够将它们移动到另一个目的地。dist 中的所有子文件夹与项目具有相同的名称。例如,如果我有项目标头,则构建后会有 dist/header/ 文件夹,并且构建存储在那里。

我不想传递像这样的参数 nx build [name] --additiona 参数。我想在构建期间以某种方式知道 custom.webpack.js 文件中哪个项目构建了 web pack。

标签: webpackmonoreponrwl

解决方案


推荐阅读