【问题标题】:npm and node versions incompatible can produce errornpm 和节点版本不兼容会产生错误
【发布时间】:2016-08-31 20:55:25
【问题描述】:

我已经安装了 nodeenv 来管理我的电脑中的 node 和 npm 版本。因为当我尝试安装 angular-cli、webpack、typescript、angular2 等软件包时,我得到了错误

第一个问题:我安装包时版本节点或 npm 会产生错误吗?

一些包会这样说:“生成的项目具有需要 Node 4.x.x 和 NPM 3.x.x 的依赖项。”

但他们没有提到确切的版本。举例来说,节点 4.1.5 的版本是否会产生错误,而不是 4.0.5 的版本?

第二个问题: 我不喜欢这些包需要像全局(-g)那样安装,而且我看到的问题有时在安装的全局包之间存在冲突。 错误示例:

npm WARN EPEERINVALID string-replace-loader@1.0.3 requires a peer of webpack@1.x.x || 2.x.x but none was installed.

PhantomJS not found on PATH
Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-macosx.zip

但是如果两个全局包使用相同的全局包,但其中一些对每个包使用不同的版本怎么办?

【问题讨论】:

  • "例如节点 4.1.5 的版本会产生错误,而不是 4.0.5 的版本吗?" --- 谁知道呢。
  • 请显示您发出的导致该错误的 npm install 命令
  • 简单举例: $npm install -g angular-cli@1.0.0-beta.11-webpack.8 ,但无论如何我想了解节点和 npm 版本中的概念,以及它们是否会产生错误
  • 我在尝试安装该软件包时也遇到了错误...我将对此进行深入研究...建议是避免这种尖锐的发布并升级您自己的项目以使用最新版本的软件包,例如作为 angular-cli ...唉,生活有时并不那么容易
  • 谢谢;我想我必须等待很多个月 angular-cli 有好的和稳定的代码,我使用的是 webpack 版本的 angular-cli,另一个没有 @ 的版本不要使用 angular2 rc5,同样的另一个选择,比如 yeoman,也许我必须等到 2017 年,因为所有这些软件包都非常不稳定。所以今天最好手动为实际项目做事

标签: node.js npm


【解决方案1】:

这取决于 npm 包所有者在他们的 package.json 中定义所有上游依赖项以及一组可以很好地协同工作的工作版本......挑战是作为包所有者让你的 package.json 尽可能松散关于上游依赖项以启用这些依赖包的较新版本,但足够紧以使您发布的包仍然有效

通常情况并非如此,这会导致版本不匹配调用错误...如果可能,请始终使用最新的软件包版本,这也适用于 nodejs 本身

当 package.json 提到诸如 3.x.x 之类的版本时,这意味着它应该适用于任何 x.x 值,因此只需选择最大的数字以适应模式

在可能的情况下避免进行全局安装,除非它是针对命令行可执行文件的...对于您的代码引入的包尤其如此,而不是以可执行为中心的包

更新我现在可以成功安装这个

npm install -g angular-cli

使用最新版本的节点

node --version
v6.5.0

所以我建议您升级自己的项目代码和节点版本,以避免固定版本失败并使用最新版本

【讨论】:

  • 但是为什么很多用户使用相同的 package.json 和相同的范围版本 >=X.X.X 或 ^X.0.0 在 github 上报告问题。有很多问题报告,例如开发人员使用相同版本的源代码和软件包可以正常工作的问题,但是安装的人得到了错误?我对具有很多依赖项和 beta 版本的 javascript 包有很多问题。这是一个疯狂的世界
  • 无论如何我不知道为什么开发人员发布 npm 包什么不能最低限度地工作,这不是关于错误,简单他们没有启动,他们犯了错误,他们没有做一个好的 package.json 准确版本依赖,例如:github.com/valor-software/ng2-bootstrap
猜你喜欢
  • 2019-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 2020-08-10
  • 2021-08-13
相关资源
最近更新 更多