JavaScript中如何将import * as写法转换为对应require引入写法
解决方法
该问题是firebaseui包的ESM导出规范与CommonJS的require语法兼容差异导致的:新版本firebaseui采用ESM优先的导出逻辑,使用require导入时,完整的模块实例会被挂载在返回对象的default属性下,直接赋值得到的外层对象不包含可调用的firebaseui方法,所以会出现undefined的情况。
正确的导入写法如下:
const firebaseui = require("firebaseui").default;
异常排查
如果修改写法后仍得到undefined,可按以下步骤排查:
- 执行
npm list firebaseui检查依赖是否正常安装到当前项目 - 若未安装,执行
npm install firebaseui完成安装后再尝试导入 - 若使用的是v3及以下版本的旧版
firebaseui,无需添加.default,直接使用原来的require写法即可
内容的提问来源于stack exchange,提问作者Arka-cell
相关产品推荐
相关产品推荐

