Angular CLI创建服务报错:classify is not defined(npm install后)
解决Angular 5中执行npm install后ng generate service报错"classify is not defined"的问题
我之前处理过类似的场景,结合你给出的版本信息(Node.js 9.5.0、npm 5.6.0、Angular CLI 1.7.1、Angular 5.2.6),这个报错大概率是npm install过程中Angular CLI的依赖出现了损坏或者版本冲突,导致CLI内部的命名处理函数classify无法正常加载。试试下面几个逐步排查的方案:
方案1:清理缓存并重新安装依赖
这是最常见的修复方式,先彻底清除现有依赖和缓存:
- 删除项目根目录的
node_modules文件夹:sudo rm -rf node_modules - 强制清理npm缓存:
sudo npm cache clean --force - 重新安装所有依赖:
sudo npm install - 完成后再尝试执行服务生成命令:
sudo ng generate service myName
方案2:重新安装对应版本的Angular CLI(全局+本地)
有时候全局或本地的CLI包会因为权限问题(你用了sudo)出现损坏,需要重新安装匹配版本的CLI:
- 卸载全局Angular CLI:
sudo npm uninstall -g @angular/cli - 再次清理npm缓存:
sudo npm cache clean --force - 安装和你项目匹配的1.7.1版本全局CLI:
sudo npm install -g @angular/cli@1.7.1 - 卸载项目本地的CLI依赖:
sudo npm uninstall @angular/cli - 安装对应版本的本地CLI:
sudo npm install --save-dev @angular/cli@1.7.1 - 最后再测试服务生成命令
方案3:检查package.json的依赖一致性
打开你的package.json文件,确保所有Angular相关依赖的版本统一:
- 确认
@angular/cli的版本是1.7.1,和全局CLI版本一致 - 确认所有
@angular/xxx核心包的版本都是5.2.6,没有混合更高或更低的版本 - 如果发现不一致,修改版本号后执行
sudo npm install重新同步依赖
补充说明
你之前能正常使用ng命令,执行sudo npm install后出问题,大概率是因为sudo权限下安装依赖时,某些CLI依赖包被意外更新或者缓存中的损坏文件被加载,导致CLI内部的工具函数无法正常工作。上面的方案从清理、重装到版本校验,基本能覆盖大部分场景。
内容的提问来源于stack exchange,提问作者Kaker
相关产品推荐
相关产品推荐

