webpack - 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。
解决方案
推荐阅读
- ebpf - eBPF XDP模式和Socket Filter模式在解析包头信息时的区别
- javascript - 匿名函数中的对象
- python - 当等于某个值时,Forloop python 递减行为
- bash - 十六进制到 ASCII 文本转换器的脚本
- laravel - Laravel:发布请求不断收到 302
- javascript - 为什么 React 的 useReducer 在第一次在 useEffect 上获取数据时返回空状态?
- java - 如何使用 Micronaut 在 HttpClientFilter 中重试 HTTP 客户端请求?
- javascript - 录制后getUserMedia不上传
- reactjs - React useState导致双重渲染
- c++ - 如何在 VS2015 的 windows 10 上构建 snappy?