4

抱歉,如果这是一个愚蠢的问题 - 我是一个完整的流星菜鸟......

我正在使用流星 1.3.1 和 Socially 教程作为参考构建一个应用程序,因为它的功能与我需要的非常相似,但我一直在控制台中看到相同的错误,只是无法弄清楚。

我已经安装了 accounts.ui 包:

meteor add dotansimha:accounts-ui-angular

然后将该包作为依赖项添加到我的角度模块中:

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

我已经安装了 .meteor/versions 列表:

角@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

两者都不能解决问题。谁能告诉我我做错了什么?

4

3 回答 3

2

这绝不是一个修复,而是一个临时的解决方法。

此问题是由 npm 版本检查包依赖关系引起的。

import {checkNpmVersions} from 'meteor/tmeasday:check-npm-versions';

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

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

解决方法:

  1. 在您的应用程序目录中创建一个新的“包”文件夹并从 github 克隆包目录(需要 Git ..)

    mkdir packages
    cd packages
    git clone https://github.com/dotansimha/accounts-ui-angular.git
    
  2. 在文件 packages.js 中更改

    -- name: "dotansimha:accounts-ui-angular",
    ++ name: "dotansimha:accounts-ui-angular-moded",
    
  3. 在文件 accounts-ui-angular.js 中更改以下内容以删除版本检查的行

    -- import {checkNpmVersions} from 'meteor/tmeasday:check-npm-versions';
    
    if (!window.angular) {
      require("angular");
    }
    
    -- checkNpmVersions({
      -- 'angular': '^1.2.27'
    -- });
    
  4. 然后回到你的应用根目录,卸载原包并安装我们刚刚修改的那个。

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

注意,我对此很陌生(第一个stackoverflow帖子,woot)。我不知道为什么会出现这个问题,但这是我目前找到的唯一解决方案。希望这会有所帮助,并希望官方包/流星将很快得到修复!

确保您安装了 1.2.27 以上的 Angular,因为我们不再验证它。

meteor list
于 2016-04-08T07:36:37.280 回答
0

尝试安装 Angular 1.3.1。我安装了那个版本后就解决了。

于 2016-04-08T05:34:40.787 回答
0

似乎有问题的代码行已从 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();
  • 要求(“角度”);
  • }
  • } 捕捉(e){
  • throw new Error('angular package is missing');
  • }

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

  • 如果(!window.angular){
  • 要求(“角度”);
  • }

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

于 2016-05-02T15:37:25.100 回答