当构建器使用不同的选项时,如何在 nrwl nx 中使用单个受影响的构建命令
Posted
技术标签:
【中文标题】当构建器使用不同的选项时,如何在 nrwl nx 中使用单个受影响的构建命令【英文标题】:how to use a single affected build command in nrwl nx when builders use different options 【发布时间】:2020-12-14 15:04:16 【问题描述】:我有一个带有角度和节点构建器的项目(@angular-builders/custom-webpack:browser 和 @nrwl/node:build)。如果我尝试运行包含对一个有效但对另一个无效的参数的构建命令,我会得到
nx affected:build --aot
ng 运行服务器:build --aot
未知选项:'--aot'
角度构建器可以接受该选项,但节点构建器不能。我已经使用 excludes 运行了受影响的:build 命令两次,但这并不能很好地扩展,因为我添加了其他类型的构建器。
nx affected:build --aot --exclude node-js-app
nx affected:build --exclude angular-js-app1, angular-js-app2
有没有办法使用受影响的:跨角度和节点项目构建并能够使用角度特定标志?
【问题讨论】:
你有没有找到更清洁的解决方案? 【参考方案1】:不确定这是最好的还是唯一的解决方案,但这是我最终用来解决此问题的方法。
我在 angular.json 中配置了一个custom run command,我在其中硬编码了每个应用程序或库所需的特定参数。 您不需要全部硬编码(请参阅配置示例),但我们的案例更容易做到。
现在要使用受影响的 nx,您可以定位新创建的 ci-build
命令:nx affected --target=ci-build --base=origin/master --args="--configuration=production"
。
...
"my-angular-app":
"architect":
"ci-build":
"builder": "@nrwl/workspace:run-commands",
"options":
"commands": [
"ng build my-angular-app --configuration=args.configuration --single-bundle --bundleStyles false --keepStyles false"
]
,
...
"my-node-lib":
"architect":
"ci-build":
"builder": "@nrwl/workspace:run-commands",
"options":
"commands": [
"ng build my-node-lib --configuration=args.configuration"
]
...
【讨论】:
这是个好主意,谢谢。我还没有找到任何解决方案,我们目前只是使用 --excludes 运行多个命令以上是关于当构建器使用不同的选项时,如何在 nrwl nx 中使用单个受影响的构建命令的主要内容,如果未能解决你的问题,请参考以下文章