日期:2021/05/08
前言
中间的解决记录,可能会帮到你也可能不会帮到你,建议看最后是如何解决的


错误 ”Data path “.builders[‘app-shell’]” should have required property ‘class’“
解决过程
1.控制台的提示
在这里插入图片描述
2.项目中package.json
在这里插入图片描述
3.本地 ng version
在这里插入图片描述

angualr/cli 版本不一致,想办法使用项目中的版本来编译运行。

卸载全局的angular/cli 版本

npm uninstall -g @angular/cli

使用当前项目的angular/cli 版本,如果你的当前项目的package.json中指定了angular/cli版本,并且已经npm i,那么当前本地(不是全局)会有这个版本的angular/cli.
在这里插入图片描述
变为当前项目指定的版本了


不幸的是,退出当前的powershell运行 `ng v` ,还是11.xx,所以就找强制卸载全局的angular/cli 方法,这样

在这里插入图片描述
但是并没有用,所以需要删除 ng.cmd所在位置
在这里插入图片描述
删除
在这里插入图片描述

cmd 运行 ng v,提示"不是内部或外部命令就对了"。总算是把全局的卸载掉了,整个世界清净多了。
再去运行项目 ng s -o


继续报错 ”Data path ".builders['app-shell']" should have required property 'class'“ 继续查
npm install @angular-devkit/build-angular@0.13.8 @angular-devkit/build-ng-packagr@0.13.8

继续运行,继续报错
在这里插入图片描述
关键词 postcss-loader
package.json 中改他的版本
在这里插入图片描述
删除node_modules 目录重新

cnpm i 
ng s -o

继续报错崩溃了。
。。。。。不记录了。


最终解决

  1. 全局卸载了高版本的angular/cli (直接删除cmd运行文件)
  2. 重新拉取项目(怀疑,在修修补补的过程中,把项目搞坏了)
  3. cnpm i
  4. ng s -o

最终成功运行了。所以本次导致这么大的问题,是因为全局的angualr/cli 和项目需要的版本不一致。

总结

  1. 别人项目源码运行报错,可能与自己的环境与项目所需环境不一致有关,在拿到他人源码的时候,先走一边package.json 这种配置文件,大概的了解用到了哪些依赖,以及依赖版本。
  2. 在报错的提示中可以找到相关依赖的关键词,然后查看它的版本与对应的项目环境所需版本是否兼容。不兼容则做对应的向上或向下处理。
  3. 当你发现已经花了很长时间没有解决一个问题的时候,不妨 rm -r -Force [项目],跳出这个死胡同,重新开始。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐