如何在Nx monorepo根目录运行时指定Nest使用server项目目录?
解决Nest在Nx Monorepo中工作目录错误的问题
问题核心是Nx默认在根目录执行目标命令,导致Nest找不到server目录下的配置与源码。以下是两种直接可行的解决方式:
方案1:指定命令执行的工作目录
修改./src/server/project.json中的dev和build目标,添加cwd字段指定命令的执行目录为server项目根目录:
{ "name": "server", "$schema": "../../node_modules/nx/schemas/project-schema.json", "title": "server", "targets": { "undefined": { "command": "nx dev server" }, "dev": { "command": "nest start --watch", "cwd": "./src/server" }, "build": { "command": "nest build", "cwd": "./src/server" }, // 其他目标配置... } }
配置后,执行nx dev server时,Nx会自动切换到./src/server目录再运行Nest命令,和你直接在该目录执行nest start --watch的效果完全一致。
方案2:在Nest命令中指定项目路径
如果不想修改工作目录,也可以直接在Nest命令中指定项目的配置文件路径:
"dev": { "command": "nest start --watch --project ./src/server" }
或者直接指定tsconfig文件路径:
"dev": { "command": "nest start --watch --tsconfig ./src/server/tsconfig.app.json" }
另外,根目录project.json里的server目标可简化为:
"server": { "command": "nx dev server" }
无需额外添加--exclude client(除非有特定依赖排除需求)。
内容的提问来源于stack exchange,提问作者Radoslav Ivanov
相关产品推荐
相关产品推荐

