簡體   English   中英

Nx CLI 運行許多命令不適用於多個應用程序

[英]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

Github

這是由於端口覆蓋而發生的,例如,如果您有多個前端應用程序,它們將在同一個端口上運行。 您可以在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 月更新解決方案。

  1. go 到package.json添加這個腳本,允許我們只用一個命令運行多個項目

    "all": "npx nx run-many --target=serve --all --maxParallel=100"

  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM