[英]Nx CLI run many command is not working for multiple apps
我曾嘗試使用 Nx 來嘗試使用 Monorepos。 我一直面臨通過nx run-many
命令為多個應用程序提供服務的問題。 如果我做錯了什么,有人可以糾正我嗎?
使用的命令: nx run-many --target=serve --all
我可以看到 Nx 控制台記錄了所有可用的應用程序,但只運行了一個
> NX Running target serve for projects:
- app1
- app2
———————————————————————————————————————————————
> nx run app1:serve
嘗試這個:
nx run-many --parallel --target=serve --projects=frontend,backend
nx run-many --target=serve --all --maxParallel=100
--maxParallel 的默認值為 3,表示默認以 3 個為一組運行任務。
另外,排除一些應用程序不提供服務。
nx run-many --target=serve --all --maxParallel=100 --exclude=app-name
這是由於端口覆蓋而發生的,例如,如果您有多個前端應用程序,它們將在同一個端口上運行。 您可以在project.json文件中管理每個項目配置,並且可以為每個項目處理不同的端口。
例子:
"serve": {
"executor": "@nrwl/web:dev-server",
"options": {
"buildTarget": "react-todo:build",
"hmr": true,
"port": 3001
},
"configurations": {
"production": {
"buildTarget": "react-todo:build:production",
"hmr": false
}
}
},
這是( apps/<Your_Project_Name>/project.json )中的反應配置
您可以通過編輯package.json
來更改服務端口
"serve": {
"executor": "@nrwl/web:dev-server",
"options": {
"buildTarget": "admin-web:build",
"port": 4220,
"hmr": true
},
"configurations": {
"production": {
"buildTarget": "admin-web:build:production",
"hmr": false
}
}
}
之后你可以運行nx run-many
nx run-many --parallel --target=serve --projects=frontend,backend
2022 年 9 月更新解決方案。
go 到package.json
添加這個腳本,允許我們只用一個命令運行多個項目
"all": "npx nx run-many --target=serve --all --maxParallel=100"
在apps
文件夾中,有幾個應用程序,以及 go 到他們的package.json
,並編輯 `targets -> serve -> options like this sample
"options": { "buildTarget": "your app name:build", "hmr": true, "port": 4201 // adding this },
目前,Remix 使用硬編碼的 8002 端口作為文件觀察器。 當同時運行兩個或多個混音應用程序時,其中一個應用程序(稍后啟動)在訪問文件服務器端口時會出錯。 要覆蓋,請在您各自的應用程序目錄中添加一個.env
或.env.local
文件,並添加環境變量REMIX_DEV_SERVER_WS_PORT
。
apps/
- app1
.env.local -> REMIX_DEV_SERVER_WS_PORT=8003
- app2
.env.local -> REMIX_DEV_SERVER_WS_PORT=8004
這對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.