webpack 未找到导入“firebase/app”模块:错误:默认条件应为最后一个

7rtdyuoh  于 2023-02-04  发布在  Webpack
关注(0)|答案(3)|浏览(148)

嗨,我从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,总是给我同样的错误。

new9mtju

new9mtju1#

这是一个非常复杂的问题,可能是firebase v- 9.17.0存在缺陷,或者您尝试导入的模块具有不同的大小写或webpack.config.js.问题,但您可以运行

npm un firebase
npm i firebase@9.16.0
jk9hmnmh

jk9hmnmh2#

看起来9.17.0有漏洞,同一应用程序在9.16中运行,但在我使用9.17.0进行测试后不再运行

u0sqgete

u0sqgete3#

根据firebase文件:将导入更新为v9 compat。为了在将依赖项从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";

参考:https://stackoverflow.com/a/72186925

相关问题