美文网首页Angular学习实践一步一坑我爱编程
angular编译版本冲突解决办法总结

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

作者: 易兒善 | 来源:发表于2017-11-16 09:44 被阅读16次

    刚刚涉足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文件夹全部删掉,然后再还原包。

    相关文章

      网友评论

        本文标题:angular编译版本冲突解决办法总结

        本文链接:https://www.haomeiwen.com/subject/ylwkvxtx.html