ng generate component报Unable to resolve @nrwl/angular错误如何解决
问题场景
执行以下命令创建Angular组件时抛出异常:
ng generate component <component-name>
报错信息如下:
Unable to resolve @nrwl/angular:component. Cannot find generator 'component' in D:\web-application\node_modules@nrwl\angular\collection.json.
当前环境版本:
- Angular CLI: 13.1.2
- Node: 16.13.2
故障原因
这个报错出现在集成了Nx的Angular工作区中,触发原因通常有两类:
- 所用Nx版本完成了包名迁移,原
@nrwl/angular作用域下的生成器已经全部迁移到@nx/angular包,旧的默认生成器路径失效 - 本地
node_modules依赖安装不完整,@nrwl/angular包内的collection.json配置文件缺失component生成器的对应条目
修复方案
按优先级依次尝试以下操作即可解决:
- 直接绕过默认的错误生成器路径,显式指定官方Angular原理图执行创建命令:
如果是Nx工作区,也可以指定Nx的新包路径执行:ng generate @schematics/angular:component <component-name>nx generate @nx/angular:component <component-name> - 如果执行上述命令依然报错,先清理本地依赖缓存重新安装:
- 删除项目根目录下的
node_modules文件夹 - 删除对应包管理器的锁文件(npm对应
package-lock.json、yarn对应yarn.lock、pnpm对应pnpm-lock.yaml) - 执行
npm install(或你所用包管理器的安装命令)重新拉取完整依赖
- 删除项目根目录下的
- 若为Nx与Angular版本不匹配导致的路径错误,执行版本对齐迁移:
按照终端输出的迁移指引完成所有依赖版本对齐后,再执行组件创建操作即可。nx migrate latest
内容的提问来源于stack exchange,提问作者Vishal
相关产品推荐
相关产品推荐

