使用 webstorm 调试 react native / expo 应用程序

Degugging a react native / expo app with webstorm

我无法在 WebStorm 中调试我的 react native / expo 应用程序,但我可以在 Visual Studio 代码中调试。 我有一个本机应用程序,我可以使用 expo 成功 运行。我根据这个网站上的信息设置配置:

https://blog.jetbrains.com/webstorm/2018/02/webstorm-2018-1-eap-181-3263/#debugging-expo

当我单击“运行”或“调试”并关闭“远程调试 JS”时,捆绑器会构建一个 JS 捆绑包并在我的设备上启动该应用程序。 但是一旦我打开“远程调试 JS”,bundler 只会说:

Starting custom debugger by executing: : [my working directory] [my working directory again]

并且永远不会继续构建 JS 包。 片刻之后,红屏出现在设备上,上面写着:

Unable to connect with remote debugger

Timeout while connecting to remote debugger

onFailure DevSupportManagerImpl.java:851

onFailure WebsocketJavaScriptExecutor.java:83

run WebsocketJavaScriptExecutor.java:142

handleCallback Handler.java:790

dispatchMessage Handler.java:99

...

打包程序除了上面的消息外什么也没说。 一旦我关闭远程调试,捆绑器就会再次开始构建并以

结束

“构建 JavaScript 捆绑包:在 ...ms 内完成”

像往常一样,但设备再次显示带有上述消息的红色屏幕,或者只显示常规的白色屏幕,底部有一条消息“正在下载 JavaScript 捆绑包 100, 00%”。我要么必须在 WebStorm 中停止并重新启动,要么必须关闭 expo 应用程序并重新打开它。无论哪种方式都会使应用程序在我的设备上重新启动。

这是我第一次使用javascript,react native,expo,所以我不确定,但应该可以直接在WebStorm中调试,对吧?如前所述,在 Visual Studio 代码中,包括调试在内的所有内容都可以正常工作,所以我认为代码中没有任何内容。也许这里有人知道问题出在哪里?

节点-v:v11.6.0 react-native -v: react-native-cli: 2.0.1, react-native: 0.57.1​​

任何帮助将不胜感激!提前致谢!

问题已在 WEB-35719 跟踪,请关注它以获取更新

证明

指南

自从您尝试后,Configurations 的设置方式似乎有了更新。

尝试将 Bundler host 更改为 127.0.0.1,然后重试。

我昨天刚刚安装了 Webstorm v2020.2 来调试我的 Expo 应用程序,它按预期工作。

这些说明就是我所需要的:https://www.jetbrains.com/help/webstorm/react-native.html#ws_react_native_create_run_config

  1. 在主菜单上,转到 运行 |编辑配置,单击列表中的 icons.general.add.svg 和 select React Native。 Run/Debug 配置:React Native 打开。

  2. 选择是否要 WebStorm 为您构建和启动应用程序:

  3. Select 如果您是第一次启动您的应用程序,或者如果您自上次 运行.

如果您的应用程序使用 Expo,请清除该复选框,因为此捆绑程序会自行处理流程。

  1. 如果您select勾选了“构建并启动”复选框,请选择目标平台,Android 或 iOS。根据您的选择,WebStorm 将 运行 捆绑器与 react-native run-ios 或 react-native run-android.

  2. 可选地,键入要传递给 React Native 的参数,例如,通过 ‑‑simulator 标志指定模拟器类型:‑‑simulator="iPhone 4s".

  3. 在Bundler host字段中,指定React Native bundler所在的主机运行s,默认值为localhost。

如果您使用的是 Expo,请更改默认的捆绑器主机以确保成功连接调试器。此连接可能会失败,因为默认情况下 WebStorm 使用 localhost 开始调试,而 Expo 需要 127.0.0.1 或外部 IP 地址,具体取决于 Metro bundler 配置的连接字段中的 selected。有关详细信息,请参阅调试使用 Expo 的 React Native 应用程序。

  1. 在Bundler port 字段中,指定React Native bundler 运行s 所在的端口,默认选择8081,更多信息请访问React Native 官网。

  2. 选择要使用的 Node.js 解释器。这可以是本地 Node.js 解释器或 Windows 子系统上的 Node.js Linux.

  3. 指定react-native-cli 的路径和应用程序的工作目录。或者,键入 react-native run-android 或 react-native run-ios.

    的环境变量
  4. 默认情况下,当您调用 run/debug 配置时,WebStorm 会自动启动 React Native 捆绑器。如果您已经从 WebStorm 外部启动了捆绑器,例如,从命令行,您可以 re-use 它而无需停止和重新启动。 Select 您在“启动前”区域中的捆绑程序,然后单击“删除”。