我正试图获得一个插件使用run-commands
,我希望它运行并执行一个依赖的任务,并将结果传递给我的命令。在这种情况下,我想有一个依赖的目标启动一个web服务器,并保持它的运行。
我已经尝试执行以下操作,nx graph
显示了正确的DAG,但我没有看到我想要的输出。
"executor": "nx:run-commands",
"options": {
"command": "./my-cli-tool --arg={frontendApp:serve}"
},
"dependsOn": [
"frontendApp:serve"
]
我知道在像bazel这样的单一工具中,传递像//frontendApp:serve
这样的目标会做我在这里所期望的,所以我猜应该有一种方法可以在nx
中做到这一点。
更新:帮助调试。
如果依赖项正在运行,则它以静默方式失败。我可以单独运行它,例如npx nx run frontendApp:serve
。我看不到端口启动和被占用,所以如果有什么事情发生,它会悄无声息地发生。
dependsOn
配置看起来有点不同。在文档中:
https://nx.dev/reference/project-configuration取决于
基本上,您需要有一个本地目标来调用其他项目中的目标。
{
"foo": {
"executor": "nx:run-commands",
"options": {
"command": "./my-cli-tool --arg={frontendApp:serve}"
},
"dependsOn": ["serve"]
},
"serve": {
"executor": "nx:run-commands",
"options": {
"command": "nx run frontendApp:serve"
}
}
}
另一个选择是使用Angular DevKit的allOf
或concat
执行器来一次运行多个东西:
"serve-with-graphql": {
"executor": "@angular-devkit/architect:allOf",
"options": {
"targets": [
{
"target": "web:serve"
},
{
"target": "graphql:dev-server"
}
]
}
},
https://github.com/angular/angular-cli/blob/main/packages/angular_devkit/architect/builders/builders.json L14-L23
allOf
同时运行每个目标concat
连续运行