[英]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代码的一部分。
经过长时间的文档研究和尝试,这是一个可行的解决方案:
首先,您必须安装打字 。 打开外壳并键入:
typings install github:typed-typings/npm-firebase
typings install firebase
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.