【问题标题】:npm peer-dependency failing unexpectedlynpm 对等依赖意外失败
【发布时间】:2014-08-08 00:26:51
【问题描述】:

我正试图找出一个对等依赖问题,我觉得一切都很好......

我的package.json 有:

, "devDependencies" : {
    "gulp-watchify" : "^0.2.0"
    ,    "watchify" : "^0.10.2"
}

gulp-watchify/package.json 有:

"peerDependencies": {
    "watchify": "^0.6.1"
},

0.10.2 稳定^0.6.1,不是吗?那么为什么npm 抱怨:

npm ERR! peerinvalid The package watchify does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer gulp-watchify@0.2.0 wants watchify@^0.6.1

npm ERR! System Darwin 14.0.0
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd <path redacted>
npm ERR! node -v v0.11.12
npm ERR! npm -v 1.4.3
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     <path redacted>/npm-debug.log
npm ERR! not ok code 0

???

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    这里的原因是0.10.2实际上并不满足^0.6.1,因为0.X.X版本是一个特殊的semver类别的不稳定版本。从0.1.X 移动到0.2.X 表示重大更改,因此它们不兼容。来自semver docs

    ^0.1.3 := >=0.1.3-0

    要解决此问题,您可以删除对 watchify 的依赖,或将其设置为 0.6.X 发布行中的某个内容,例如:

    , "devDependencies" : {
        "gulp-watchify" : "^0.2.0"
        ,    "watchify" : "^0.6.4"
    }
    

    【讨论】:

    • gah,我讨厌人们决定多次对同一事物具有多种含义。谢谢你:)
    • 是的,我想大多数人都不知道这一点(包括那些开发项目和使用 0.X 版本的人)。但是一旦你知道它,在早期开发中使用它就很好了。真的有稳定产品的人应该切换到1.X及以上。
    【解决方案2】:

    我记得这是不久前版本不兼容的问题。这是一个具有类似依赖关系问题的堆栈,其答案应该有助于找出您的依赖关系在哪里中断。当然它是用于 grunt 依赖项:

    grunt-dependencies

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2018-04-22
      • 1970-01-01
      • 2016-12-25
      • 2016-09-08
      • 2015-11-16
      • 2022-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多