2016-09-23 54 views
1

我選擇了getting started with Angular2 tutorial格式,只添加在angularfire2部分。localhost:3000/traceur SystemJS與AngularFire

import { AngularFireModule } from 'angularfire2'; 

我使用的angularfire2 docs page

步驟下面是我systemjs.config.js

/** 
* System configuration for Angular 2 samples 
* Adjust as necessary for your application needs. 
*/ 
(function (global) { 
    System.config({ 
    paths: { 
     // paths serve as alias 
     'npm:': 'node_modules/' 
    }, 
    // map tells the System loader where to look for things 
    map: { 
     // our app is within the app folder 
     app: 'app', 
     // angular bundles 
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
     '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
     '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
     '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
     '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
     '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
     '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
     '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
     // other libraries 
     'rxjs':      'npm:rxjs', 
     'angular2-in-memory-web-api': 'npm:angular2-in-memory-web-api', 
     'angularfire2':    'npm:angularfire2' 
    }, 
    // packages tells the System loader how to load when no filename and/or no extension 
    packages: { 
     app: { 
     main: './main.js', 
     defaultExtension: 'js' 
     }, 
     rxjs: { 
     defaultExtension: 'js' 
     }, 
     'angular2-in-memory-web-api': { 
     main: './index.js', 
     defaultExtension: 'js' 
     }, 
     angularfire2: { 
     main: 'index.js', 
     defautExtension: 'js' 
     } 
    } 
    }); 
})(this); 

然後我只是導入它像這樣安裝的火力和angularfire2然後我不斷收到這個錯誤:

enter image description here

任何提示是怎麼回事?

回答

3

你的配置將angularfire2映射到node_modules/angularfire2/index.js,這是寫入es6,所以SystemJS試圖使用traceur編譯它,並且找不到它。

簡單的修復方法是對其進行配置,以便在angular2/bundles/angularFire2.umd.js中加載軟件包,而不是index.js

所以angularfire2packages

angularfire2: { 
    main: 'index.js' 

需要改變,以

angularfire2: { 
    main: 'bundles/angularFire2.umd.js' 

此外,angularFire取決於火力地堡,因此,作爲@Jonathon奧茨在他回答說,你需要提供的配置對於Firebase也是如此。

+0

我做了@ jonathan-oates的建議。您可能想要更新您的答案以包含該位。謝謝。固定爲我。 – Rexford

+0

是的,在他的回答中增加了一個參考 – artem

+1

@Rexford和@artem我找不到任何類似的問題,所以我想我可能也會問你。 你是如何設法導入'angularfire2/database'和'angularfire2/auth'的? 我試圖從'map:{}'中將它們導入爲'''''''''''''''''''''''':'nfire:angularfire2/auth':'npm:angularfire2/database'和''''' 請參閱[我的問題](https://stackoverflow.com/questions/44125733/angular-typescript-error-traceur-404-not-found) 謝謝。 – CENT1PEDE

3

Thanks @artem - 我遇到了完全相同的問題!

您也可能需要在您的map中參考Firebase,例如

'firebase': 'npm:firebase' 

並將Firebase添加到您的packages例如,

'angularfire2': { 
    main: './bundles/angularFire2.umd.js', 
    defaultExtension: 'js' 
    }, 
    'firebase': { 
    main: './firebase.js', 
    defaultExtension: 'js' 
    } 

否則,您可能會看到Firebase出現新的404錯誤。