在Ionic中缺少Angular模块

时间:2017-06-16 12:15:01

标签: android angular ionic-framework angularfire ionic3

我已经在另一台计算机上测试了代码并且发现它适用于Ionic,但是现在在我的个人电脑上运行时,我遇到了这些错误:

[16:08:05]  typescript: home/ghylama/node_modules/angularfire2/angularfire2.d.ts, line: 3 
            Cannot find module '@angular/core'. 

       L2:  import { FirebaseAppConfig } from './interfaces';
       L3:  import { InjectionToken } from '@angular/core';
       L4:  declare const FirebaseAppName: InjectionToken<string>;

[16:08:05]  typescript: home/ghylama/node_modules/angularfire2/app/firebase.app.module.d.ts, line: 1 
            Cannot find module '@angular/core'. 

       L1:  import { InjectionToken } from '@angular/core';
       L2:  import { FirebaseAppConfig } from '../interfaces';

我正在使用Ubuntu MATE。 离子版:3.4.0

npm版本:4.6.0

我尝试将node_modules中文件夹的所有权更改为自己。没有帮助。

我跑了

sudo npm install g angularfire firebase 

已经。

Html文件:

&#13;
&#13;
<ion-content padding>

  <ion-list>
    <ion-item>
      <ion-label fixed>Email</ion-label>
      <ion-input type="email" [(ngModel)]="email"></ion-input>
    </ion-item>

    <ion-item>
      <ion-label fixed>Password</ion-label>
      <ion-input type="password" [(ngModel)]="password"></ion-input>
    </ion-item>
    <div style="height: 50px;"></div>
    <button (click)="login(email,password)" ion-button color="dark" outline>Log In</button>
   <button (click)="logout()" ion-button color="dark" outline>Log Out</button>
      <button (click)="signin()" ion-button color="dark" clear>Or create an account</button>

    <p style="color:red;">{{errorMessage}}</p>

    <!--<div> {{ (af.auth | async)?.uid }} </div>-->
  </ion-list>


</ion-content>
&#13;
&#13;
&#13;

.ts文件:

&#13;
&#13;
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { AngularFire } from 'angularfire2';
import { Mainmenu } from '../mainmenu/mainmenu';
import { SignIn } from '../sign-in/sign-in';


@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  errorMessage:string;
  constructor(public navCtrl: NavController,public af: AngularFire) {

    af.auth.subscribe(auth => {
      if(auth) {
        console.log('logged in');
      } else {
        console.log('not logged in');
      }
    });


    this.errorMessage = "";
  }
  login(Email,Password) {
    //Email = "hamada@hamada.com";
    //Password = "abc123";
    this.af.auth.login({ email: Email, password: Password })
      .then((info)=>{
          this.navCtrl.push(Mainmenu);
        },
        (erro)=>{
          console.log("Error " + erro);
          this.errorMessage = "Email/Password are incorrect";
        }
      );
  }
  logout() {

    this.af.auth.logout();
  }

  signin()
  {
    this.navCtrl.push(SignIn);
  }

}
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

安装angularfire2 版本1 后,您正在访问angularfire

npm install angularfire2 firebase --save

检查the installation instruction

确保删除angularfire。

npm uninstall angularfire --save

此外,您不需要使用g。这适用于全局安装,它不会找到角度模块,因为它将在您的项目中本地安装。

答案 1 :(得分:1)

尝试按照项目目录中的这些步骤(cd path-to-project-folder):

1。 npm install --save angularfire

2。 npm install --save firebase

这应该足够了,但是如果错误仍然存​​在,那么请保留在项目目录中并运行:

1。 rm -rf node_modules

2。 npm install