【问题标题】:Grunt won't install on my projectGrunt 不会安装在我的项目上
【发布时间】:2016-05-18 07:59:17
【问题描述】:

我一直在尝试在我的项目上安装 grunt,但没有成功。

这是我在运行 npm install 时遇到的错误

npm WARN package.json XXX@1.0.0 No license field.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package grunt does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer grunt-contrib-copy@0.8.2 wants grunt@>=0.4.0
npm ERR! peerinvalid Peer grunt-contrib-sass@0.9.2 wants grunt@>=0.4.0
npm ERR! peerinvalid Peer grunt-contrib-watch@0.6.1 wants grunt@~0.4.0
npm ERR! peerinvalid Peer grunt-mustache-render@1.9.0 wants grunt@^0.4.5

这是我的包 json 的样子

{
  "name": "XXX",
  "version": "1.0.0",
  "repository": {
    "type": "git",
    "url": "some git repo"
  },
  "devDependencies": {
    "grunt-html-build": "^0.5.1",
    "grunt-contrib-copy": "^0.8.0",
    "grunt-contrib-sass": "^0.9.2",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-mustache-render": "^1.9.0"
  }
}

我已经尝试过 npm update -g 但似乎没有发生任何事情。

npm --version 说 2.11.3

我认为我发现的唯一相关错误是在我运行时

> npm list
├─┬ grunt@1.0.1 peer invalid

最后:npm ERR!对等体无效:grunt@1.0.1

> grunt --version
grunt-cli v1.2.0
grunt v1.0.1

我需要重新安装 grunt 吗?我还没有找到相关的命令。

感谢您的帮助!

【问题讨论】:

    标签: npm gruntjs npm-install


    【解决方案1】:

    一些 grunt 插件尚未更新其对等依赖项要求,尚未与 1.0 版本的 grunt 一起使用(1.0 是相当新的)。您可以尝试删除对等依赖项要求,但这可能会出现问题,具体取决于 0.4.5 和 1.0 之间所做的更改。 (0.4.5 是 1.0 之前的最后一个版本)

    尝试先安装与插件兼容的 grunt 版本:npm install grunt@^0.4.5 --save-dev

    【讨论】:

      【解决方案2】:

      对于 npm 版本 2,您应该拥有 grunt 版本 0.4.5

      “devDependencies”:{ “咕噜”:“^0.4.5”}

      如下所示,npm 版本小于 3,所以你应该有 grunt 版本:^0.4.5 $ npm --version 2.15.11

      【讨论】:

        【解决方案3】:

        npm install 的输出很好地说明了一切:

        npm ERR! peerinvalid Peer grunt-contrib-copy@0.8.2 wants grunt@>=0.4.0
        npm ERR! peerinvalid Peer grunt-contrib-sass@0.9.2 wants grunt@>=0.4.0
        npm ERR! peerinvalid Peer grunt-contrib-watch@0.6.1 wants grunt@~0.4.0
        npm ERR! peerinvalid Peer grunt-mustache-render@1.9.0 wants grunt@^0.4.5
        

        要理解它,您需要理解这里解释的语义版本控制:

        https://docs.npmjs.com/files/package.json#version

        这里

        https://docs.npmjs.com/misc/semver

        为了解决这个问题,您必须为阻止安装新 grunt 的软件包指定更灵活的版本号。

        只需为所有 grunt 插件设置 ">= 0.0.0" 要求,它们的版本将通过 npm 与 grunt 版本同步。

         "devDependencies": {
            "grunt-html-build": ">=0.0.0",
            "grunt-contrib-copy": ">=0.0.0",
            "grunt-contrib-sass": ">=0.0.0",
            "grunt-contrib-watch": ">=0.0.0",
            "grunt-mustache-render": ">=0.0.0"
          }
        

        【讨论】:

        • 谢谢。当错误清楚地表明它需要 grunt > 0.4.0 并且我有 grunt 1.0.1 时,我看不出它是如何解释得很好的?
        • >=0.4.0 满足你的 grunt 版本,而 ~0.4.0 和 ^0.4.0 没有。这是棘手的部分。您可以指定满足所有要求的 grunt 版本,例如 npm install --save grunt@0.4.0
        • 我尝试像您说的那样更改 package.json,并将所有内容替换为 >=0.0.0 相同的错误。如果我尝试 npm install --save grunt@0.4.0,也会出现同样的错误
        猜你喜欢
        • 2017-04-26
        • 1970-01-01
        • 2014-10-17
        • 2021-11-24
        • 1970-01-01
        • 2015-05-02
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        相关资源
        最近更新 更多