包 grunt 不满足其兄弟姐妹的 peerDependencies 要求

The package grunt does not satisfy its siblings' peerDependencies requirements

我正在尝试创建我的 grunt 构建但卡在以下错误中

npm WARN package.json Dependency 'grunt' exists in both dependencies and devDependencies, using 'grunt@~0.4.2' from dependencies
npm ERR! Darwin 13.4.0
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.12.0
npm ERR! npm  v2.5.1
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package grunt does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer grunt-contrib-requirejs@0.4.4 wants grunt@~0.4.0
npm ERR! peerinvalid Peer grunt-config@0.1.8 wants grunt@~0.4.0
npm ERR! peerinvalid Peer grunt-string-replace@0.2.8 wants grunt@~0.4.1
npm ERR! peerinvalid Peer grunt-contrib-clean@0.5.0 wants grunt@~0.4.0
npm ERR! peerinvalid Peer grunt-contrib-cssmin@0.10.0 wants grunt@~0.4.1
npm ERR! peerinvalid Peer grunt-contrib-jshint@0.11.0 wants grunt@~0.4.5
npm ERR! peerinvalid Peer grunt-contrib-uglify@0.8.0 wants grunt@>=0.4.0
npm ERR! peerinvalid Peer grunt-exec@0.4.6 wants grunt@~0.4

正如 here 提到的,我卸载了我的节点、npm 和 grunt 并重新安装了它们,但仍然面临同样的问题?

有什么想法吗?

我的 JSON 依赖项是:

"dependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-requirejs": "~0.4.1",
    "grunt-config": "~0.1.4",
    "grunt-string-replace": "~0.2.7",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-cssmin": "~0.10.0"
  },
  "devDependencies": {
    "grunt": "0.4.2",
    "grunt-cli": "0.1.13",
    "grunt-contrib-jshint": ">0.8.0",
    "grunt-contrib-uglify": ">0.3.2",
    "load-grunt-tasks": ">=0.3.0",
    "requirejs": ">=2.1.10",
    "grunt-exec": "~0.4.5"
  }

同样的事情对我的同事来说效果很好。

您声明了两次 grunt 依赖。一种用于开发,一种不用于开发。两者都有不同的版本规则。这就是导致冲突的原因。

您应该删除其中一个。 (通常 grunt 是 devdependencies 的一部分)

依赖关系

"grunt": "~0.4.2",

开发依赖

"grunt": "0.4.2",

编辑:

我测试了一下,问题解决了:

"dependencies": {
  "grunt-contrib-requirejs": "~0.4.1",
  "grunt-config": "~0.1.4",
  "grunt-string-replace": "~0.2.7",
  "grunt-contrib-clean": "~0.5.0",
  "grunt-contrib-cssmin": "~0.10.0"
},
"devDependencies": {
  "grunt": "~0.4.2",
  "grunt-cli": "0.1.13",
  "grunt-contrib-jshint": ">0.8.0",
  "grunt-contrib-uglify": ">0.3.2",
  "load-grunt-tasks": ">=0.3.0",
  "requirejs": ">=2.1.10",
  "grunt-exec": "~0.4.5"
}

我今天遇到了类似的错误,通过升级 npm 修复了它:

npm install -g npm

我的版本是 2.14,升级后变成了 3.8

更新我所有的全局 npm 包解决了我的问题:

npm update -g