npm节点模块中的对等关系问题

我已经遇到了一些问题,在我的项目安装grunt相关的节点模块依赖关系,

我想用一个命令安装选定的依赖关系,所以我在下面使用,

npm install grunt grunt-contrib-jshint grunt-cli grunt-contrib-watch grunt-exec grunt-contrib-symlink grunt-contrib-clean grunt-contrib-copy grunt-text-replace grunt-git --save-dev 

有错误,像“grunt-exec@0.4.6需要grunt@~0.4同行,但没有安装。 所以根据谷歌的反馈,发现我们可以像下面的修复一样对依赖版本进行硬编码,

 npm install grunt@~0.4 grunt-contrib-jshint grunt-cli grunt-contrib-watch grunt-exec grunt-contrib-symlink grunt-contrib-clean grunt-contrib-copy grunt-text-replace grunt-git --save-dev 

它已暂时解决了这个问题,但现在我得到一个错误,像“grunt-git@1.0.0需要grunt@~1.0.1同行,但没有安装。

所以看起来,咕噜插件需要不同版本的相同的依赖 – 咕噜(在我的情况)。 逐个安装插件而不是集群也不能解决问题

更新

既然人们想从这个答案中拿走点数,而没有阅读这些意见来看看是否find了解决办法,那么我们就到了:

像这样的一个实例,你应该回顾以前发布的grunt-git版本,find一个符合你的需求的旧版本(v0.3.8)并仔细检查你想使用插件的function是否可用。 如果是,请尝试npm install grunt-git@0.3.8 --save-dev 。 发布可以在这里find。

原始解决scheme

首先,您需要通过运行命令npm init来创build一个package.json文件来初始化您的项目。 系统会提示您回答几个问题,如果您愿意,可以更改默认值。

项目初始化后,一次安装一个依赖关系,并包含标志--save--save-dev 。 这将添加依赖到package.json清单。 例如: npm install grunt-contrib-jshint --save-dev

一旦将package.json文件中列出的所有依赖关系都列出,就可以使用npm install实现一个命令的npm install

如果您想了解更多信息,NPM注册中心有关于使用package.json的非常详细的文章 。

用全局标志安装grunt

 npm install -g grunt 

我已经使用来自会议的build议解决了我的问题。

只有最近版本的grunt-git(1.0.0)有依赖性问题,所以我安装了0.3.7版本的旧版本,它不需要特定版本的grunt。

 npm install grunt@0.4.5 grunt-contrib-jshint grunt-cli grunt-contrib-watch grunt-exec grunt-contrib-symlink grunt-contrib-clean grunt-contrib-copy grunt-text-replace grunt-git@0.3.7 --save-dev 

今天在试图安装grunt-exec时遇到了类似的问题。

 npm ERR! peerinvalid The package grunt@1.0.1 does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer grunt-exec@0.4.6 wants grunt@~0.4 

从这个线索中的一些线索,我修复了…

 npm uninstall grunt 

在我的项目的根文件夹中,我编辑了package.json以从devDependencies中删除grunt。

我已经在全球安装了grunt,所以在项目中也不需要它。

运行

npm install -D grunt-exec

第二次为我工作,我的更新devDependencies现在看起来像这样:

  "devDependencies": { "chai": "^3.5.0", "grunt": "^0.4.5", "grunt-contrib-clean": ">0.4.0", "grunt-contrib-concat": "^1.0.0", "grunt-contrib-jshint": "~1.0.0", "grunt-contrib-uglify": "^1.0.1", "grunt-exec": "^0.4.6", "grunt-mocha-test": "^0.12.7", "mocha": "^2.4.5" }, 

新的线路咕噜咕噜,咕噜咕噜。

到目前为止,我的项目和添加grunt-exec之前一样。 看起来我只是find了一个简单的方法来降级到早期版本的grunt。

以下是全球安装的版本信息:

 >grunt -V grunt-cli v1.2.0 grunt v0.4.5 

希望这可以帮助。