Angular NPM 5.0.1更新后出现ng serve错误:无效版本:

Angular NPM 5.0.1更新后出现ng serve错误:无效版本:,angular,npm,Angular,Npm,我刚刚更新到NPM5.0.1,我的Angular 4.1.3项目中立即出现了编译错误。删除并完全重新安装我的节点模块后(所有软件包都是最新的)我在运行ng serve时遇到一个奇怪的红色错误: Invalid Version: https://registry.npmjs.org/@angular/core/-/core-4.1.3.tgz TypeError: Invalid Version: https://registry.npmjs.org/@angular/core/-/core-4.

我刚刚更新到NPM5.0.1,我的Angular 4.1.3项目中立即出现了编译错误。删除并完全重新安装我的节点模块后(所有软件包都是最新的)我在运行
ng serve
时遇到一个奇怪的红色错误:

Invalid Version: https://registry.npmjs.org/@angular/core/-/core-4.1.3.tgz
TypeError: Invalid Version: https://registry.npmjs.org/@angular/core/-/core-4.1.3.tgz
    at new SemVer (/Users/bracicot/dev/recruitler/node_modules/semver/semver.js:293:11)
    at new Version (/Users/bracicot/dev/recruitler/node_modules/@angular/cli/upgrade/version.js:23:36)
    at Function.assertAngularVersionIs2_3_1OrHigher (/Users/bracicot/dev/recruitler/node_modules/@angular/cli/upgrade/version.js:80:23)
    at Class.run (/Users/bracicot/dev/recruitler/node_modules/@angular/cli/commands/serve.js:102:27)
    at Class.Command.validateAndRun (/Users/bracicot/dev/recruitler/node_modules/@angular/cli/ember-cli/lib/models/command.js:128:15)
    at /Users/bracicot/dev/recruitler/node_modules/@angular/cli/ember-cli/lib/cli/cli.js:92:22
    at tryCatch (/Users/bracicot/dev/recruitler/node_modules/rsvp/dist/rsvp.js:539:12)
    at invokeCallback (/Users/bracicot/dev/recruitler/node_modules/rsvp/dist/rsvp.js:554:13)
    at /Users/bracicot/dev/recruitler/node_modules/rsvp/dist/rsvp.js:629:16
    at flush (/Users/bracicot/dev/recruitler/node_modules/rsvp/dist/rsvp.js:2414:5)
    at _combinedTickCallback (internal/process/next_tick.js:95:7)
    at process._tickCallback (internal/process/next_tick.js:161:9)
我有点困惑,到底是什么原因导致了NPM的缩减。网上似乎也没有关于它的任何信息

更新: NPM添加了一个package-lock.json文件。无效的版本来自那里

更新2: 重新安装CLI后,我得到
找不到模块“webpack/lib/node/NodeTemplatePlugin”
可能是
package.json
package lock.json
不同步吗

更新3: 特别感谢@Dylanb124 是的,NPM5肯定有缺陷,第一个问题是使用不正确的值创建包锁文件。。。这个问题有很多,我已经解决了。我的开发伙伴能够让NPM5与一个新的NG项目一起工作。因此,我们将工作版本与回购协议进行匹配,直到其正确构建。主要的冲突是支持node和mongo(hammer.js)的包,以及一些我可以永久删除的包。(无论如何都要进行一些清理)最后我们能够让它运行起来。我建议尽可能长时间等待升级到NPM 5x

运行此命令。这有用吗

然后试试看

ng发球

总结 此问题可能与包版本控制完全无关。尝试以下操作:

  • 删除节点_模块中的所有子文件夹
  • 执行
    npm安装
    ,并注意任何初始错误或错误 警告,特别是那些涉及安全问题的警告 下载/安装软件包
  • 通过
    npm install--save手动安装程序包
    并使用
    npm rebuild
    重新生成它
  • 此时,您可以尝试构建Angular包,希望能够成功构建

    细节 我一直在处理同样的构建问题。然而,我能够让Angular项目在一台机器上构建,而不是在另一台机器上。两台机器都使用相同版本的NPM(5.0.1)和Node(7.10.0)

    关于不正确版本的错误消息似乎与根本原因无关。您是否可以尝试清除您的节点\u模块文件夹,并执行
    npm安装

    在我的例子中,我看到了许多与节点sassnpm包相关的警告和错误。该包似乎试图从无效的Github URL下载,这意味着它从未下载过,并导致了大量构建错误

    我的特定解决方案涉及手动安装它试图下载的包,然后手动重建该包(请参阅)

    我仍在试图找到真正的根本原因,因为没有理由认为这应该是一台机器上的问题,而不是另一台机器上的问题。我会用任何发现更新这篇文章。我相信这可能是一个安装问题,因为我在两台机器之间安装了不同的NPM5

    更新
    • 卸载NodeJs/NPM、重新安装和升级到npm5.0.2似乎没有什么不同
    • 删除node_modules文件夹并在仍在生成的计算机上重新安装程序包导致成功复制该问题,现在不再生成
    • 在尝试了不同版本的Nodejs、npm和许多其他软件包之后,我认为npm5目前的问题太多了。我暂时回到NPM4

      • 在npm 5.0.2上对我有用的东西

      • 删除节点单元模块

      • rm-f package-lock.json&&npm安装


      • 您使用的是哪个节点版本所有包都是最新的
        node 8
        NPM 5.0.1
        我可以通过删除package-lock.json来缓解此问题,它将以任何方式自动创建。尝试更改其名称,然后将其与新创建的名称进行区分,以跟踪问题。我刚刚删除了它,现在一切正常,againI确实运行了它,但我使用的是CLI,它不是一个原始的网页包项目。然而,在安装webpack之后,它似乎是
        构建的
        ,但不会加载。。。也许这个新问题与代码有关,因为我在开发中期更新了NPM…感谢您的写作!是的,NPM5当然是有车的。这个问题有很多,我已经解决了。我的开发伙伴能够让NPM5与一个新的NG项目一起工作。因此,我们将工作版本与回购协议进行匹配,直到其正确构建。主要的冲突是支持node和mongo(hammer.js)的包,以及一些我可以永久删除的包。(无论如何都要进行一些清理)最终,我们能够让它运行,而NPM支持从未给我回复,但我建议尽可能长时间地等待升级到NPM,这是解决此问题的第一步。谢谢这是最有用的答案!不知道package-lock.json正在中断安装过程。到底是干什么用的?
         npm uninstall --save-dev webpack
         rm -R node_modules
         npm install