NPM 不识别以“*-rc”结尾的 semvers(即发布候选者);导致依赖关系无法解析。通常的解决方法是什么?

NPM doesn't recognize semvers that end with '*-rc' (i.e. release candidates); causes dependencies to fail to resolve. What's the usual workaround?

这里有一个非常简单的例子来说明这个问题。

我正在尝试将 react-native@0.8-rcreact-native-linear-gradient 一起使用。

react-native-linear-gradientreact-native@>=0.4.4 定义为对等依赖。很公平。

我运行npm install.

我收到一个错误提示

react-native@0.8-rc不满足react-native@>=0.4.4.

这个问题使 npm 变得毫无用处,因为它妨碍了开发人员和包维护人员。参见 here for an example

任何使用 node 的人如何对候选版本做任何有用的工作?!?!解决方法是什么?


供您参考,来自 NPM 3.1.2(撰写本文时的最新版本)的错误如下所示:

MyProject@0.0.1 /path/to/MyProject
├─┬ react-native@0.8.0-rc
│ └── stacktrace-parser@0.1.1  (git://github.com/frantic/stacktrace-parser.git#493c5e5638a79b4d5886171867a06275cc703b00)
└─┬ react-native-linear-gradient@0.3.2 
  └── UNMET PEER DEPENDENCY react-native@>= 0.4.4

npm WARN EPEERINVALID react-native-linear-gradient@0.3.2 requires a peer of react-native@>= 0.4.4 but none was installed.

将 NPM 指向 github 版本:

npm install --save https://github.com/facebook/react-native/archive/v0.8.0-rc.tar.gz

编辑:抱歉,没关系,我看错了,以为你在安装它时遇到了问题。除了修改 peerDependency

之外,我看不到解决它的方法

好的,所以我查看了这个,据我所知这是 semver.

版本的错误

短期:我建议分叉 semver 存储库,修复你的分叉中的错误,然后只在 package.json 中为你的项目引用你的 semver 分叉。

长期:针对您的具体问题提交错误报告,或自己提交代码修复并请求成为贡献者。