NPM 对等要求错误
Posted
技术标签:
【中文标题】NPM 对等要求错误【英文标题】:NPM peer requirements error 【发布时间】:2016-07-27 20:26:07 【问题描述】:抱歉,如果这是一个愚蠢的问题 - 我是一个完整的流星菜鸟......
我正在使用流星 1.3.1 和 Socially 教程作为参考构建一个应用程序,因为它的功能与我需要的非常相似,但我一直在控制台中看到相同的错误,只是想不通.
我已经安装了 accounts.ui 包:
meteor add dotansimha:accounts-ui-angular
然后将该包作为依赖项添加到我的 Angular 模块中:
angular.module('dkfitness', [
'angular-meteor',
'ui.router',
'angularMoment',
'accounts.ui'
]);
我已经安装了 .meteor/versions 列表:
angular@1.3.9_2
但我一直看到以下错误:
check-npm-versions.js:17 Error: Cannot find module
'angular/package.json'(…) check-npm-versions.js:48 WARNING: npm peer
requirements not installed:- angular@^1.2.27 not installed.
我试图将 angular 的包版本强制为 1.2.27 我也跑过:
meteor npm install --save angular
两者都不能解决问题。 谁能告诉我我做错了什么?
【问题讨论】:
您找到解决此问题的方法了吗? 还没有 - 需要尝试 angular 1.3.1 安装,但不在我可以再测试两天的地方。 【参考方案1】:这绝不是一种修复,而是一种临时解决方法。
这个问题是由 npm 版本检查包依赖引起的。
import checkNpmVersions from 'meteor/tmeasday:check-npm-versions';
if (!window.angular)
require("angular");
checkNpmVersions(
'angular': '^1.2.27'
);
解决方法:
在您的应用程序目录中创建一个新的“packages”文件夹并从 github 克隆包目录(需要 Git..)
mkdir packages
cd packages
git clone https://github.com/dotansimha/accounts-ui-angular.git
在文件 packages.js 中改变
-- name: "dotansimha:accounts-ui-angular",
++ name: "dotansimha:accounts-ui-angular-moded",
在文件 accounts-ui-angular.js 中更改以下内容以删除版本检查的行
-- import checkNpmVersions from 'meteor/tmeasday:check-npm-versions';
if (!window.angular)
require("angular");
-- checkNpmVersions(
-- 'angular': '^1.2.27'
-- );
然后回到你的应用根目录,卸载原包并安装我们刚刚修改的那个。
meteor remove dotansimha:accounts-ui-angular
meteor add dotansimha:accounts-ui-angular-moded
请注意,我对此很陌生(第一个 *** 帖子,呜呜)。我不知道为什么会出现这个问题,但这是我目前找到的唯一解决方案。希望这会有所帮助,并希望官方包/流星很快就会得到修复!
确保您安装了 Angular 1.2.27 以上版本,因为我们不再验证它。
meteor list
【讨论】:
谢谢亚历克斯,您是否与安装的 2 个单独版本的 Angular 有任何冲突? 不,我确实验证过,一切看起来都很好【参考方案2】:似乎有问题的代码行已从 dotansimha:dotansimha:accounts-ui-angular 中删除
但是版本号没有跳跃。它仍然是 0.0.4
无论如何要解决这个问题,只需删除并添加包。 流星删除 dotansimha:accounts-ui-angular 流星添加 dotansimha:accounts-ui-angular
@alexbouchardd:感谢您发现这个问题。
更新:问题也是由于accounts-ui-angular.js中的这一部分
试试 if (Package['modules-runtime']) var require = Package['modules-runtime'].meteorInstall(); require('angular'); 捕获(e) throw new Error('angular package is missing');将这里的代码还原为较早的版本
if (!window.angular) 要求(“角度”);按照 alexbouchardd 的步骤克隆和替换 dotansimha:dotansimha:accounts-ui-angular
【讨论】:
谢谢!我尝试删除该软件包并重新安装它,但仍然收到该 npm 错误。我想知道这个包是否可能被缓存在某个地方......【参考方案3】:尝试安装 Angular 1.3.1。安装那个版本后就解决了。
【讨论】:
Angular 1.3.1 打破了我的分页 :-(以上是关于NPM 对等要求错误的主要内容,如果未能解决你的问题,请参考以下文章
如何解决对等依赖错误:包 react@15.3.2 不满足其兄弟的 peerDependencies 要求
冲突的对等依赖关系:webpack@4.46.0 npm ERR!节点模块/webpack
npm WARN jest-react-native@17.0.0 需要 whatwg-fetch@^1.0.0 的对等点,但没有安装