繁体   English   中英

打字稿,Firebase,Cordova:找不到“ firebase”模块

[英]Typescript, Firebase, Cordova: Cannot find module for 'firebase'

我正在使用Cordova和Typescript开发混合应用程序。 我需要集成Firebase才能从数据库中读取/更新/保存一些数据。

我的问题是有关在Typescript中导入和使用Firebase(未使用框架)。 并在localhost上对其进行测试。

所以,这就是我所拥有的:

webpack.config.js

module.exports = function(options) {
  return {
    [...]
    resolve: {
      extensions: ['.ts', '.js'],
      alias: {
        firebase: helpers.root('node_modules/firebase/firebase.js')
      }
    },
    [...]
    module: {
      rules: [
        { test: /\.ts$/, enforce: 'pre', loader: 'tslint-loader' },
        { test: /firebase\.js$/, loader: 'expose-loader?firebase' },
        { test: /\.ts$/, loader: 'ts-loader', exclude: '/node_modules/' },
      ]
    }
  }
};

package.json

{
  [...]
  "main": "src/ts/index.ts",
  "devDependencies": {
    [...]
    "typescript": "2.2.2",
    "firebase": "^4.6.0"
  },
  "dependencies": {
    "@types/firebase": "^2.4.32",
    [...]
  }
}

tsconfig.json

{
  "files": [
    "./src/ts/index.ts",
    "./node_modules/@types/firebase/index.d.ts"
  ]
}

src/ts/index.ts

import * as firebase from "firebase";

export namespace Application {

  export function initialize() {
    const db = firebase.database();
  }

}

window.onload = function() {
  Application.initialize();
};

启动应用程序时,它将在控制台中引发错误:

Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_2_firebase__ is not a constructor

拜托,你能帮我吗?

更新 :我已经删除了无用的代码行,并且正如@kevinSpaceyIsKeyserSöze告诉我的那样,我已经编辑了Firebase代码的一部分。

经过长时间的文档研究和尝试,这是一个可行的解决方案:

首先,您必须安装打字 打开外壳并键入:

  1. typings install github:typed-typings/npm-firebase
  2. typings install firebase
  3. npm i --save-dev firebase

然后在tsconfig.json ,在files对象下:

"files": [
  "./typings/index.d.ts"
]

src/ts/index.ts

import * as firebase from "firebase";

export namespace Application {

  export function initialize() {
    const firebaseApp = firebase.initializeApp({ ...firebase config });
    const db = firebaseApp.database();
  }

}

window.onload = function() {
  Application.initialize();
};

就这样!

这样, Cannot find module for 'firebase'错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM