Angular 4执行ng g c创建组件报错:Cannot read property 'length' of null
解决Angular 4中
ng g c componentname报错"Cannot read property 'length' of null"的方案 我之前在Angular项目里也碰到过这个诡异的错误,多半是项目配置文件或者Angular CLI的缓存出了问题,给你几个亲测有效的解决步骤:
清理Angular CLI缓存与依赖
有时候CLI的缓存会导致各种奇怪的问题,先从清理缓存开始:npm cache clean --force接着删除项目根目录下的
node_modules文件夹和package-lock.json文件,重新安装依赖:rm -rf node_modules package-lock.json npm install检查
.angular-cli.json配置文件
Angular 4使用的配置文件是.angular-cli.json,打开它仔细检查有没有格式错误——比如某个字段不小心被设为null,或者缺失了必填项。重点关注apps数组里的配置,比如root、outDir这些路径字段是否正确设置,有没有拼写错误。修复异常后保存,再重新执行组件创建命令。确认项目目录结构完整性
确保项目根目录下的核心结构是完整的:比如src文件夹存在,src/app目录也正常。如果不小心删除了某个关键目录或文件,CLI在生成组件时找不到对应路径,就可能抛出这类空值错误。更新Angular CLI到兼容版本
Angular 4对应的CLI稳定版本是1.x系列,如果你的CLI版本不兼容,也会引发问题。先查看当前CLI版本:ng --version如果版本不对,先卸载全局CLI,再安装对应兼容版本:
npm uninstall -g @angular/cli npm install -g @angular/cli@1.7.4 # 此版本为Angular 4的稳定兼容版同时别忘了更新项目本地的CLI依赖:
npm uninstall --save-dev @angular/cli npm install --save-dev @angular/cli@1.7.4手动创建组件作为备选方案
如果上面的方法都没解决问题,可以试试手动创建组件:- 在
src/app下新建目标组件文件夹(比如componentname) - 在文件夹内创建
componentname.component.ts、componentname.component.html、componentname.component.css(可选)、componentname.component.spec.ts(可选)文件 - 在
app.module.ts中导入该组件,并添加到declarations数组中
- 在
按照上面的步骤逐一尝试,应该能解决这个问题。
内容的提问来源于stack exchange,提问作者Hai Dinh
相关产品推荐
相关产品推荐

