我已经启动了一个Firebase云功能项目,并且想知道如何在WebStorm IDE运行中进行调试?
我已阅读到可以使用@ google-cloud / functions-emulator归档目标。 因此,我安装了它并遵循了documentation
运行functions inspect myFunction
后,我得到以下输出。
Warning: You're using Node.js v10.6.0 but the Google Cloud Functions runtime is only available in Node.js 6 and Node.js 8. Therefore, results from running emulated functions may not match production behavior.
Debugger for app listening on port 9229.
我认为调试现在应该可以进行。在浏览器中打开myFunction(例如http://localhost:8010/my-project/us-central1/myFunction/)可以正常工作。
现在我正在努力。将IDE连接到调试器或将调试器连接到IDE,我该怎么做?我不知道调试如何工作。
预期结果:我想在WebStorm IDE中的断点处暂停,然后在Chrome浏览器中打开该功能。
感谢您的提前帮助;)
答案 0 :(得分:10)
从firebase-tools v7.11.0开始,Firebase模拟器现在支持使用--inspect-functions
选项附加调试器。这样,您便可以使用WebStorm调试本地运行的firebase功能,同时使用其余的(经过改进的)仿真器工具。
首先请确保您具有必要的firebase-tools
:
$ npm install firebase-tools@latest
现在,您可以从项目目录在Firebase模拟器中启动功能:
$ firebase emulators:start --inspect-functions
输出将显示如下内容:
$ firebase emulators:start --inspect-functions
i emulators: Starting emulators: functions, hosting
⚠ functions: You are running the functions emulator in debug mode (port=9229). This means that functions will execute in sequence rather than in parallel.
✔ functions: Using node@10 from host.
请注意上面输出中的“ port = 9229”。这是我们要告诉WebStorm连接的端口。
在WebStorm中打开项目,然后:
现在从WebStorm主菜单中,选择运行|。调试... ,然后选择新的配置。 WebStorm将附加到承载您的功能的过程中,您可以像在WebStorm中进行常规调试会话一样使用调试功能(断点等)。
答案 1 :(得分:0)
将WebStorm配置为调试Firebase函数可能会造成混乱,因为有两个different ways可以在本地运行Firebase函数。
这对我有用:
"C:\Program Files\Java\jdk-12.0.2\bin\keytool.exe" -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
npm install --save-dev @google-cloud/functions-framework
调试配置
Node.js
node_modules/@google-cloud/functions-framework/build/src/index.js
(在我的示例中,我还指定了--target=<your-function-name>
开关来设置函数将监听的端口)。
然后,从WebStorm菜单运行--port
将加载您的函数并触及您设置的所有断点。
答案 2 :(得分:0)
将此 npm 运行脚本添加到 package.json
:
"dev": "npm run build && firebase emulators:start --only functions --inspect-functions 10001 & tsc --watch"
& tsc --watch
npm run dev
以启动模拟器,或在 WebStorm 中为此专门创建一个 npm
运行配置。您需要使用 WebStorm 或在下一步之前手动启动它,每次,除非您使用复合运行配置(请参阅最后一节)Attach to NodeJS/ Chrome
,更新端口Compound
运行配置,它会启动您可能需要的所有内容:例如我同时运行 4 个东西,我在 React 中的 web 应用程序客户端,1 个用于服务/构建 React 应用程序的 NextJS 服务器,我的 firebase 函数(只是为了运行它),以及 firebase 调试运行配置(只是为了调试它)。