嗨,我从 webpack 和 firebase 开始。每次当我这样做时:
import { initializeApp } from "firebase/app";
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WElcome</title>
<script src="./main.js"></script>
</head>
<body>
Welcome
</body>
</html>
index.js:
import { initializeApp } from "firebase/app";
package.json:
{
"name": "dark",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "webpack --mode development"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"webpack": "^5.75.0",
"webpack-cli": "^5.0.1"
},
"dependencies": {
"firebase": "^9.17.0"
}
}
我已经尝试重新做一遍,但我在这个文件夹中使用 npm i firebase 安装了 firebase,并且总是给我同样的错误。我缺少什么?
这是一个非常复杂的问题,可能
firebase v- 9.17.0
有问题,或者您尝试导入的模块有不同的外壳或webpack.config.js
。问题
但现在你可以运行。
npm un firebase
npm i [email protected]
经过更多考虑,我发现了另外两个解决方案: 1 您可以使用 /compact 导入
import 'firebase/compat/analytics';
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
或者,使用最新版本:
Version `9.17.1 - February 3, 2023`
将
exports.default fields
移动到始终是最后一个字段。这修复了 9.17.0
中引入的错误,该错误阻止了某些捆绑器和框架的构建。对于这些构建失败,错误文本为:“默认条件应该是最后一个”。
根据 firebase 文档:将导入更新为 v9 兼容。为了在将依赖项从 v8 更新到 v9 beta 后保持代码正常运行,请更改导入语句以使用每个导入的“compat”版本。例如:
之前:版本 8
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/firestore';
import "firebase/database";
import "firebase/storage";
之后:版本 9 compat // v9 compat 软件包与 v8 代码的 API 兼容
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
import "firebase/compat/database";
import "firebase/compat/storage";
请尝试以下操作:导入 firebase 来自“firebase/compat/app”; firebase": "^10.7.2,