如何使用nx run-many对同一项目指定多套配置批量运行
问题原因
Nx 的run-many命令会自动对--projects参数传入的项目列表做去重处理,即使重复填写同一个项目也只会被识别一次,所以你尝试的两种写法都只能启动2个实例,无法实现同一项目对应不同配置多次运行的需求。
解决方案
你可以通过以下两种方式实现一条命令启动全部4个实例的需求:
方案1:配置package.json脚本配合并行执行工具
安装跨平台并行执行工具concurrently:npm i -D concurrently
之后在package.json的scripts字段中添加配置:
{ "scripts": { "start:all": "concurrently \"nx run app1:serve:dev-front-1\" \"nx run app2:serve:dev-back-1\" \"nx run app1:serve:dev-front-2\" \"nx run app2:serve:dev-back-2\"" } }
配置完成后直接运行npm run start:all即可。
方案2:使用Nx内置的run-commands定义组合任务
无需引入第三方依赖,直接在nx.json中新增自定义target:
{ "targets": { "serve-all": { "executor": "nx:run-commands", "options": { "parallel": true, "commands": [ "nx run app1:serve:dev-front-1", "nx run app2:serve:dev-back-1", "nx run app1:serve:dev-front-2", "nx run app2:serve:dev-back-2" ] } } } }
之后在package.json的scripts中配置:
{ "scripts": { "start:all": "nx run serve-all" } }
运行npm run start:all即可启动全部4个实例。
内容的提问来源于stack exchange,提问作者Yohan Dahmani
相关产品推荐
相关产品推荐

