NPM同级需求错误

4

非常抱歉,如果这个问题很愚蠢 - 我是一个完全没有经验的Meteor新手...

我正在使用meteor 1.3.1构建应用程序,并参考社交教程,因为它与我需要的东西非常相似,但我一直在控制台看到同样的错误,无法解决。

我已安装了accounts.ui软件包:

meteor add dotansimha:accounts-ui-angular

然后在我的Angular模块中将该软件包添加为依赖项:

angular.module('dkfitness', [
'angular-meteor',
'ui.router',
'angularMoment',
'accounts.ui'
]);

我已经安装了Angular,.meteor/versions中列出:

angular@1.3.9_2

但我不断看到以下错误:

check-npm-versions.js:17 错误:找不到模块'angular/package.json'(…) check-npm-versions.js:48 警告:未安装npm同行要求:- angular@^1.2.27未安装。

我尝试强制使用Angular版本1.2.27的软件包,我也运行了:

meteor npm install --save angular

两种方法都无法解决问题。 有人能告诉我哪里出了问题吗?


你解决了这个问题吗? - stackMan10
还没有,需要尝试安装Angular 1.3.1,但我还需要两天才能测试。 - Yon
3个回答

2
这并不是一个解决方案,而是一个临时的解决方法。
这个问题是由于npm版本检查导致的包依赖性问题。
import {checkNpmVersions} from 'meteor/tmeasday:check-npm-versions';

if (!window.angular) {
  require("angular");
}

checkNpmVersions({
  'angular': '^1.2.27'
});

解决方案:

  1. In your app directory create a new "packages" folder and clone the package directory from github (requires Git..)

    mkdir packages
    cd packages
    git clone https://github.com/dotansimha/accounts-ui-angular.git
    
  2. In the file packages.js change

    -- name: "dotansimha:accounts-ui-angular",
    ++ name: "dotansimha:accounts-ui-angular-moded",
    
  3. In file accounts-ui-angular.js change the following to remove the lines that version check

    -- import {checkNpmVersions} from 'meteor/tmeasday:check-npm-versions';
    
    if (!window.angular) {
      require("angular");
    }
    
    -- checkNpmVersions({
      -- 'angular': '^1.2.27'
    -- });
    
  4. Then back to your app root, uninstall the original package and install the one we just modified.

    meteor remove dotansimha:accounts-ui-angular
    meteor add dotansimha:accounts-ui-angular-moded
    

提醒一下,我对这个领域很新(第一个stackoverflow帖子,哇)。我不知道为什么会出现这个问题,但它是目前我找到的唯一解决方案。希望这能有所帮助,也希望官方包/meteor能尽快得到修复!

确保您安装了1.2.27以上版本的angular,因为我们不再进行验证。

meteor list

谢谢Alex,你安装了两个不同版本的Angular有没有出现冲突? - Yon
我已经验证过了,一切看起来都很好。 - alexbouchard

0
尝试安装Angular 1.3.1版本。在我安装了该版本后问题得到解决。

Angular 1.3.1破坏了我的分页功能 :-( - Yon

0

看起来有问题的代码已经从dotansimha:dotansimha:accounts-ui-angular中删除了

但是发布版本号没有变化,仍然是0.0.4

无论如何,要解决此问题,只需删除并添加该软件包。

meteor remove dotansimha:accounts-ui-angular meteor add dotansimha:accounts-ui-angular

@alexbouchardd:感谢您发现此问题。

更新:问题也归因于accounts-ui-angular.js中的此部分

  • try {
  • if (Package['modules-runtime']) {
  • var require = Package['modules-runtime'].meteorInstall();
  • require('angular');
  • }
  • } catch(e) {
  • throw new Error('angular package is missing');
  • }

将此处的代码还原到早期版本

  • if (!window.angular) {
  • require("angular");
  • }

按照alexbouchardd的步骤克隆和替换dotansimha:dotansimha:accounts-ui-angular


谢谢!我尝试卸载并重新安装包,但仍然遇到了npm错误。我在想这个包可能被缓存到了某个地方... - Yon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接