无法导入(es6)firebase 3 npm模块成角度

时间:2016-06-03 10:13:23

标签: angularjs firebase ecmascript-6

出于某种原因,Angular说它无法找到firebase模块?以同样的方式导入其他模块没问题。

import angular from 'angular';

// angular modules
import constants from './constants';
import onConfig  from './on_config';
import onRun     from './on_run';
import 'angular-ui-router';
import 'firebase/app'
import './templates';
import './filters';
import './controllers';
import './services';
import './directives';

// create and bootstrap application
const requires = [
  'firebase',  
  'ui.router',
  'templates',
  'app.filters',
  'app.controllers',
  'app.services',
  'app.directives'
];

window.app = angular.module('app', requires);

有没有其他人遇到过这个问题,或者有任何建议我可能会出错?

我导入此文件,我认为应该加载正确的库

/**
 *  Firebase app for browser npm package.
 *
 * Usage:
 *
 *   firebase = require('firebase/app');
 */
require('./firebase-app');
module.exports = firebase;

这是经典错误

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:modulerr] Failed to instantiate module firebase due to:
Error: [$injector:nomod] Module 'firebase' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容导入整个模块:

   import * as firebase from 'firebase'

答案 1 :(得分:0)

我很困惑:es6模块路径需要以.js结尾,并以相对或全局路径开头,即./或../或http://path/to/dir/

可能存在某种“OP合法化”OP路径的预处理?或者这只是Angular的导入?

如果是真正的es6模块,建议的更改将适用于支持模块的浏览器。