npm 节点模块中的对等依赖问题
Peer dependency issue in npm Node modules
我 运行 在为我的项目安装 g运行t 相关节点模块依赖项时遇到了一些问题,
我想使用一个命令安装选定的依赖项,所以我在下面使用了,
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 requires a peer of grunt@~0.4 but none was installed.' 的错误
所以根据谷歌搜索的反馈,发现我们可以硬编码依赖版本,如下修复,
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 requires a peer of grunt@~1.0.1 but none was installed.'
所以 g运行t 插件似乎需要相同依赖项的不同版本 - g运行t(在我的例子中)。一个接一个地安装插件而不是集群也不能解决问题
使用全局标志安装 grunt
npm install -g grunt
更新
由于人们想从这个答案中扣分 w/o 阅读评论以查看是否找到了解决方案,这就是我们得出的结论:
像这样的实例,您应该查看 grunt-git
之前发布的版本,找到满足您的要求的旧版本 (v0.3.8)
并仔细检查您是否想与插件一起使用的功能是否可用。如果是,请尝试 npm install grunt-git@0.3.8 --save-dev
。可以找到版本 here.
原解
首先,您需要通过 运行 命令 npm init
创建一个 package.json
文件来初始化您的项目。系统会提示您回答几个问题,您可以根据需要更改默认值。
项目初始化后,一次安装一个依赖项并包含标志 --save
或 --save-dev
。这会将依赖项添加到 package.json 清单。示例:npm install grunt-contrib-jshint --save-dev
在 package.json 文件中列出所有依赖项后,您就可以使用 npm install
实现单命令安装。
如果您想了解更多信息,NPM 注册中心有关于使用 package.json
的 very detailed article。
我已经使用 theaccordance 中的建议解决了我的问题。
只有最新版本的 grunt-git(1.0.0) 存在依赖性问题,所以我正在安装不需要特定版本的 grunt 的先前版本 0.3.7。
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 和 grunt-exec。
到目前为止,我的项目与添加 grunt-exec 之前一样工作。看来我刚刚找到了一个简单的方法来降级到早期版本的 grunt。
这是全局安装的版本信息:
>grunt -V
grunt-cli v1.2.0
grunt v0.4.5
希望这对您有所帮助。
我 运行 在为我的项目安装 g运行t 相关节点模块依赖项时遇到了一些问题,
我想使用一个命令安装选定的依赖项,所以我在下面使用了,
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 requires a peer of grunt@~0.4 but none was installed.' 的错误 所以根据谷歌搜索的反馈,发现我们可以硬编码依赖版本,如下修复,
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 requires a peer of grunt@~1.0.1 but none was installed.'
所以 g运行t 插件似乎需要相同依赖项的不同版本 - g运行t(在我的例子中)。一个接一个地安装插件而不是集群也不能解决问题
使用全局标志安装 grunt
npm install -g grunt
更新
由于人们想从这个答案中扣分 w/o 阅读评论以查看是否找到了解决方案,这就是我们得出的结论:
像这样的实例,您应该查看 grunt-git
之前发布的版本,找到满足您的要求的旧版本 (v0.3.8)
并仔细检查您是否想与插件一起使用的功能是否可用。如果是,请尝试 npm install grunt-git@0.3.8 --save-dev
。可以找到版本 here.
原解
首先,您需要通过 运行 命令 npm init
创建一个 package.json
文件来初始化您的项目。系统会提示您回答几个问题,您可以根据需要更改默认值。
项目初始化后,一次安装一个依赖项并包含标志 --save
或 --save-dev
。这会将依赖项添加到 package.json 清单。示例:npm install grunt-contrib-jshint --save-dev
在 package.json 文件中列出所有依赖项后,您就可以使用 npm install
实现单命令安装。
如果您想了解更多信息,NPM 注册中心有关于使用 package.json
的 very detailed article。
我已经使用 theaccordance 中的建议解决了我的问题。
只有最新版本的 grunt-git(1.0.0) 存在依赖性问题,所以我正在安装不需要特定版本的 grunt 的先前版本 0.3.7。
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 和 grunt-exec。
到目前为止,我的项目与添加 grunt-exec 之前一样工作。看来我刚刚找到了一个简单的方法来降级到早期版本的 grunt。
这是全局安装的版本信息:
>grunt -V
grunt-cli v1.2.0
grunt v0.4.5
希望这对您有所帮助。