Firebase 模拟器启动时失败找不到模块 --dns-result-order=ipv4first

Rum*_*ish 11 node.js firebase

firebase 模拟器11.0.0无法启动

\n
firebase emulators:start\n
Run Code Online (Sandbox Code Playgroud)\n

当它到达模拟器 UI 时抛出异常...

\n
\n

i ui:模拟器 UI 记录到 ui-debug.log
\n \xe2\x9a\xa0 ui:发生致命错误:模拟器 UI 已退出,代码为:1,停止所有正在运行的模拟器
\n i ui:停止模拟器 UI
\n \ xe2\x9a\xa0 ui:停止模拟器 UI 时出错

\n
\n

ui-debug.log的堆栈跟踪显示...

\n
\n

节点:内部/模块/cjs/loader:936 抛出错误;

\n

错误:找不到模块“/Users/hayden/Desktop/parent_app_firebase_cloud_emulator/functions/--dns-result-order=ipv4first”。
\nat Function.Module._resolveFilename(节点:内部/模块/cjs/loader:933:15)。
\nat Function._resolveFilename(pkg/prelude/bootstrap.js:1955:46)。\nat Function.Module._load(节点:internal/modules/cjs/loader:778:27)。
\nat Function.runMain (pkg/prelude/bootstrap.js:1983:12)。
\nat 节点:internal/main/run_main_module:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] }。

\n
\n

看起来错误与第 84 行有关......

\n
Starting Emulator UI with command {"binary":"node","args":["--dns-result-order=ipv4first"\n
Run Code Online (Sandbox Code Playgroud)\n

然后在节点中抛出错误,因为它无法找到名为--dns-result-order=ipv4first 的模块

\n

关于如何启动本地 firebase 模拟器以便其运行而不会因此异常而失败的任何想法?

\n

运行节点 16 和 Firebase 11.0.0

\n

Rum*_*ish 7

这个错误仍然存​​在,但感谢 @Viktor 提供的github 链接, firebase 团队已经找到了该问题并提供了临时解决方法...

问题来源:独立 Firebase CLI 二进制文件

解决方案:删除独立的二进制文件并使用 npm 重新安装...

步骤 1. 找到 firebase 独立二进制文件..

which firebase
Run Code Online (Sandbox Code Playgroud)

打印类似... /usr/local/bin/firebase 的内容

步骤 2. 重命名或删除该文件夹...

sudo mv /usr/local/bin/firebase /usr/local/bin/firebase_broken
Run Code Online (Sandbox Code Playgroud)

步骤 3. 使用npm重新安装

 npm install -g firebase-tools
Run Code Online (Sandbox Code Playgroud)

第 4 步:一切顺利!从项目文件夹重新运行...

firebase emulators:start
Run Code Online (Sandbox Code Playgroud)


mat*_*ang 3

降级到 10.9.2 解决了我的问题:

npm i -g firebase-tools@10.9.2
Run Code Online (Sandbox Code Playgroud)