是否可以调试在 Firebase 函数模拟器中运行的多个代码库?

问题描述 投票:0回答:2

我正在尝试使用 Firebase 模拟器和 VS Code 调试一些在本地运行的 Firebase 函数。

我可以使用以下命令来做到这一点:

firebase emulators:start --inspect-functions

“调试器正在侦听

ws://127.0.0.1:9229/{some-uuid}
”,然后我可以将 VS Code 附加到它。

问题是我在同一个模拟器中运行2代码库,但调试器只能启动一次......所以我只能调试firebase.json中定义的第一个代码库。

是否可以更改 9229 端口以运行另一个调试器(在同一个或另一个模拟器中)?

firebase google-cloud-functions vscode-debugger firebase-tools
2个回答
2
投票

如果您在调试多个 Firebase 函数代码库时遇到问题,这里的解决方法可能会有所帮助。

首先,找到您的

firebase-tools
安装文件夹。该文件夹通常在 Node.js 安装中全局安装。对于在 Windows 上使用 NVM(节点版本管理器)的用户,通常可以在
C:\Progs\nvm\v20.10.0\node_modules\firebase-tools\
找到它。

需要修改:

  1. firebase-tools\lib\emulator\controller.js

    • 找到包含
      codebase:
      的行。
    • codebase: cfg.codebase,
      之后,插入新行:
      inspectorPort: cfg.inspectorPort,
    • 结果应该是这样的:
      emulatableBackends.push({
          functionsDir,
          runtime,
          codebase: cfg.codebase,
          inspectorPort: cfg.inspectorPort,
          env: Object.assign({}, options.extDevEnv),
          secretEnv: [],
          predefinedTriggers: options.extDevTriggers,
      });
      
  2. firebase-tools\lib\emulator\functionsEmulator.js

    • 搜索
      ${this.args.debugPort}
    • 将其替换为
      ${backend.inspectorPort || this.args.debugPort}
    • 这可确保使用配置中的
      inspectorPort
      (如果指定),否则默认为命令行参数中的端口或默认端口。

进行这些更改后,您的 Firebase 工具安装现在应该支持为每个代码库指定单独的端口。

进一步配置:

  • 在您的
    firebase.json
    文件中,将
    "inspectorPort": "9230",
    添加到每个代码库条目。确保为不同的代码库使用唯一的端口。
  • 修改您的
    launch.json
    文件以包含每个代码库的新调试器设置,并指定适当的端口。

完成这些步骤后,当您启动模拟器时,您应该能够将调试器实例附加到不同的函数代码库以进行有效的调试。快乐编码!


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.