You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NX Monorepo中以NX方式执行nest add @nestjs/azure-func-http?

在NX Monorepo中集成@nestjs/azure-func-http的解决方案

问题背景

在NX Monorepo里集成@nestjs/azure-func-http时,找不到类似Angular PWA的NX风格schematics命令:

  • 执行npx nx add @nestjs/azure-func-http --project=api提示Cannot find configuration for task api:add
  • 直接运行npx nest add @nestjs/azure-func-http --project=api报错could not determine executable to run
  • 只能先安装@nestjs/cli再手动修改配置,过程繁琐

可行的集成步骤

1. 安装局部@nestjs/cli

避免全局CLI版本冲突,直接安装到项目开发依赖:

npm install -D @nestjs/cli

2. 用nest CLI完成初始化(指定项目路径)

NX Monorepo中,nest CLI需要明确项目所在目录,用--path参数替代--project:

npx nest add @nestjs/azure-func-http --path apps/api

该命令会自动生成main.azure.ts、function.json等Azure函数所需文件,并添加相关依赖。

3. 修正NX项目配置

nest CLI不会自动更新NX的project.json,需手动补充构建和运行目标:
打开apps/api/project.json,在targets节点下添加以下配置:

"build": {
  "executor": "@nrwl/js:tsc",
  "outputs": ["{options.outputPath}"],
  "options": {
    "outputPath": "dist/apps/api",
    "main": "apps/api/src/main.azure.ts",
    "tsConfig": "apps/api/tsconfig.app.json",
    "assets": [
      "apps/api/src/assets",
      "apps/api/src/function.json"
    ]
  }
},
"serve:azure": {
  "executor": "@nrwl/workspace:run-commands",
  "options": {
    "command": "func start --script-root dist/apps/api"
  }
}
  • build目标指定用NX的tsc执行器编译,入口指向生成的main.azure.ts,同时将function.json加入资源文件列表
  • serve:azure目标调用Azure Functions CLI启动服务

4. 测试运行

先构建项目:

npx nx build api

再启动Azure函数:

npx nx run api:serve:azure

常见问题排查

  • 若仍报错could not determine executable to run:确认@nestjs/cli已安装到项目依赖(查看package.json的devDependencies),npx会优先调用局部安装的CLI
  • 确保api项目是NX生成的标准NestJS项目:手动创建的项目可能缺少NX所需的配置文件

内容的提问来源于stack exchange,提问作者Kirby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:05:52