我刚刚更新到 NPM 5.0.1,我的 Angular 4.1.3 项目立即出现编译错误。删除并完全重新安装我的 node_modules (所有包都是最新的) 后,我在运行 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 后,我得到
Cannot find module 'webpack/lib/node/NodeTemplatePlugin'
可能是 package.json
和 package-lock.json
不在同步?
更新 3: 特别感谢@Dylanb124 是的,NPM5 肯定有问题,第一个问题是使用不正确的值创建的包锁定文件......这个问题有很多,我已经解决了。我的开发伙伴能够让 NPM 5 与一个新的 NG 项目一起工作。因此,我们将工作版本与我们的存储库进行匹配,直到它正确构建。主要冲突是支持 node 和 mongo (hammer.js) 的包以及我能够永久删除的其他一些包。 (无论如何都要进行一些清理工作)最终我们能够让它运行起来。我建议尽可能等待升级到 NPM 5x
最佳答案
在 npm 5.0.2 上对我有用的东西
删除节点模块
rm -f package-lock.json && npm install
关于angular - NPM 5.0.1 更新后 ng 服务错误 : Invalid Version:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44328652/