angular编译版本冲突解决办法总结

刚刚涉足angular,对于node,npm,typescript等都不太熟悉。网上下载别人源码一编译,报一堆英文错误,死了的心都有了。先来感受一下吧

image.png

image.png

image.png

image.png

经过两天的踩坑,东看看,西查查。终于算是解决了目前项目的错误。虽然不知道为什么,但是可以肯定的是,大部分是因为下载的依赖版本不对导致的。初步总结了以下解决这类问题的方法。

学好英语

手下不能害怕,更不能放弃。英语不好用百度翻译啊。看清楚问题大致的意思是什么,哪个模块导致的。找到罪魁祸首。
说不好有的多红字里就写的有解决办法呢。

理解package.json文件

首先知道NPM依赖包版本号~和^的区别。

    "lodash": "^4.17.4",
    "marked": "^0.3.6",
    "moment": "~2.18.1",
    "moment-timezone": "^0.5.13",
~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0

往往一个版本从1.2.0到1.3.0变化是比较大的。

我现在所遇到的问题,大部分就是因为^这个导致的。
作者在用的时候,使用npm install -save 命令来安装包的时候,普遍都是^符号,
当我们下载的包的版本已经从1.2.0更新到1.9.8到2.1.0了,
这时候我们使用npm install命令来还原包,
下载的就会是1.9.8版本的包而不是1.2.0版本的。
在我们编译的时候,这就可能会出现错误。

降低版本号

定位出现问题的模块——在package.json文件中找到将^改为~符号——去node_modules下面把该模块的包删掉——重新执行npm install

如果不行,可以试试修改package.json文件后,把node_modules文件夹全部删掉,然后再还原包。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 11,375评论 2 36
  • JavaScript 模块化编程 网站越来越复杂,js代码、js文件也越来越多,会遇到什么问题? 命名冲突; 文件...
    magic_pill阅读 5,334评论 0 1
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 12,542评论 7 35
  • 觉得最近状态不太对,干什么也干不进去,加上面试找工作,静不下心来,也有种无所事事的感觉,又总觉着很多事还没做...
    宝锤阅读 1,885评论 0 0
  • 愿有时光可回首,哪怕无力跟你走——写给今生遇到的所有朋友 总有一些人,曾在你最美好的年华里驻足,陪你走一段,想必也...
    石成玉_d24e阅读 3,362评论 0 0