2016-09-23 3 views
1

Я выбрал формат getting started with Angular2 tutorial и добавлен только в часть angularfire2.localhost: 3000/traceur SystemJS с AngularFire

Я установил firebase и 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); 

Тогда я просто импортируя его следующим образом:

import { AngularFireModule } from 'angularfire2'; 

Затем я продолжаю получать эту ошибку:

enter image description here

Любой намек, что происходит?

ответ

3

Ваша конфигурация отображает angularfire2 на node_modules/angularfire2/index.js, что написано на es6, поэтому SystemJS пытается скомпилировать его с помощью traceur и не может найти его.

Простым решением было бы сконфигурировать его, чтобы он загружал комплект в angular2/bundles/angularFire2.umd.js, а не index.js.

Так angularfire2 в packages

angularfire2: { 
    main: 'index.js' 

должен быть изменен на

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

Кроме того, angularFire зависит от Firebase, так, как сказал @Jonathon Оутс в своем ответе, вы должны предоставить конфигурацию для Firebase тоже.

+0

Я сделал предложение @ jonathan-oates. Вы можете обновить свой ответ, чтобы включить этот бит. Благодарю. Исправлено для меня. – Rexford

+0

Yep, добавил ссылку на его ответ – artem

+1

@Rexford и @artem Я не могу найти ни одного подобного вопроса, кроме этого, поэтому я подумал, что могу спросить вас, а также ребята. Как вам удалось импортировать 'angularfire2/database' и' angularfire2/auth'? Я пытался импортировать их из 'map: {}' as ''angularfire2/database': 'npm: angularfire2/database'' и' 'angularfire2/auth': 'npm: angularfire2/auth''. См. [Мой вопрос] (https://stackoverflow.com/questions/44125733/angular-typescript-error-traceur-404-not-found) Спасибо. – CENT1PEDE

3

Спасибо @artem - У меня была такая же проблема!

Возможно, вам также понадобится ссылка на Firebase в вашем map, например.

'firebase': 'npm:firebase' 

И добавить Firebase к вашему packages например

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

В противном случае вы можете увидеть новую ошибку 404 для Firebase.