繁体   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