Angular14+NestJS8+Nx14项目启动报错AssignProcessToJobObject: (6)
使用Angular 14、NestJS 8和Nx 14搭建前端项目,构建过程无报错且成功完成,但执行启动命令:nx run ui-app:serve:development --port=4200 --ssl=true --o=true
时出现错误。错误信息显示Angular开发服务器已监听localhost:4200,但随即抛出AssignProcessToJobObject: (6) The handle is invalid.,后续NX提示ui-app:serve:development任务失败,npm返回ELIFECYCLE错误码1。运行环境为Windows 10(版本10.0.19044)、Node v14.21.1、npm v6.14.17。
1. 禁用NX进程作业对象管理
在项目根目录的nx.json文件中,修改tasksRunnerOptions配置,添加disableJobWrapper: true:
{ "tasksRunnerOptions": { "default": { "runner": "@nrwl/workspace/tasks-runners/default", "options": { "useDaemonProcess": false, "cacheableOperations": ["build", "test", "lint"], "disableJobWrapper": true } } } }
保存配置后,重新执行启动命令。
2. 升级Node.js版本
Node v14.x在Windows环境下的进程管理存在兼容性问题,升级到Node v16.x LTS版本(Nx 14兼容Node 14/16/18),升级完成后清理npm缓存并重启服务。
3. 排查SSL相关问题
暂时移除--ssl=true参数,执行命令:nx run ui-app:serve:development --port=4200 --o=true
若服务能正常启动,说明SSL证书存在异常。执行以下命令重新生成SSL证书:
nx generate @nrwl/angular:ssl ui-app
生成后再次添加--ssl=true参数启动服务。
4. 清理缓存并重建项目
执行命令清理NX和npm缓存:
nx reset npm cache clean --force
然后重新构建项目:
nx run ui-app:build:development
构建完成后尝试启动服务。
内容的提问来源于stack exchange,提问作者Dr. Rahul Jha

