cmd : react-native run-android 在每次文件更改时
Posted
技术标签:
【中文标题】cmd : react-native run-android 在每次文件更改时【英文标题】:cmd : react-native run-android on every file change 【发布时间】:2015-12-13 07:53:37 【问题描述】:当我运行“react-native run-android”时,构建被部署到模拟器并且程序执行良好。但是在本地对文件进行更改后,我需要运行“react-native run-android”。
任何方式都可以使用 watchman 来完成,就像 react-native ios 一样。
谢谢
【问题讨论】:
【参考方案1】:您必须启用实时重新加载。
According to the tutorial:
对于 Android,从您的项目运行 react-native run-android 以在您的模拟器或设备上安装生成的应用程序,并启动启用实时代码重新加载的 Node 服务器。要查看您的更改,您必须打开 rage-shake-menu(摇动设备或按设备上的菜单按钮,按 F2 或 Page Up 用于模拟器,⌘+M 用于 Genymotion),然后按 Reload JS。
【讨论】:
在我的情况下,这些都不是很有用。根据我自己的(也许是独特的?)情况写了一个替代答案。无论如何,谢谢。 对于 Ubuntu 上的我来说,使用常规的android avd
而不是 Genymotion,只有一个有效的方法是 CTRL + M。
@AleksandarPopovic 非常感谢这个快捷方式!在我的 Windows 7 for Android Emulator 上只有 Ctrl+M 有效
@alex , Ctrl + M 在 Android Studio 和 windows 10 中不起作用 .. 你是否为此安装了任何额外的东西?
@ShuvoHabib 不,我照常使用默认的安卓模拟器【参考方案2】:
我正在使用带有 Genymotion 的 MacOS X。由于某种原因,尚未确定,一切正常,模拟器运行,我的应用程序使用“react-native run-android”部署到它。但是,当我尝试使用说明here 中指示的Command + M 键盘快捷键时,“rage menu”不会显示:
对于 Android,从 AwesomeProject 运行 react-native run-android 到 在您的模拟器或设备上安装生成的应用程序,然后启动 启用实时代码重新加载的节点服务器。要查看您的更改,您 必须打开 rage-shake-menu(摇动设备或按下 设备上的菜单按钮,按 F2 或 Page Up 用于模拟器,⌘+M 用于 Genymotion),然后按 Reload JS。
所以最终,我编写了一个名为 rageMenuAndroid.sh 的小型 shell 脚本(您可以直接在 bash shell 等命令行中运行相同的命令),如下所示:
#!/usr/bin/env bash
adb shell input keyevent 82
这实际上启动了愤怒菜单。从那里使用 React Native 启用实时重新加载很简单(我的目标),只需选择“Auto Reload”,然后在需要时选择“Reload JS”按钮刷新。
如果有人知道如何让“愤怒菜单”直接出现在模拟器上,请他们在下面发表评论。设置 IOS 轻而易举,只用了 2 分钟,而 Android 则需要一些努力(可能需要几个小时,而且我已经安装了 JDK)。
从阅读this blog得到这个答案的灵感
【讨论】:
感谢您对我的博客大喊大叫。我相信您可以按下一个 genymotion 按钮来模拟设备抖动。这应该在模拟 RN-APP 时调用愤怒菜单 @ChrisGeirman - 感谢您的评论。知道用于模拟设备抖动的 genymotion 按钮是什么吗?或者它是哪个键盘快捷键? (我使用的是 Mac)。 对我来说 ⌘+M 快捷方式有效。唯一的事情是菜单按钮(出现在 genymotion 模拟器的黑色右侧边栏上)应该出现在屏幕上以使快捷方式起作用。【参考方案3】:打开愤怒震动菜单。 (F2/Page Up) -> 开发设置 -> JS 更改时自动重新加载
【讨论】:
天哪,非常感谢你,我在谷歌上搜索了 3 天,但没有为我的项目找到解决方案。 如果 F2/Page Up 不起作用,可以使用 ctrl + m 打开狂暴菜单。【参考方案4】:对于 Android 设备,我添加了一个脚本,该脚本执行以下操作来激活愤怒菜单。基本上按“MENU”然后“R”然后“ENTER”(更多信息ADB Shell Input Events)
#!/bin/bash
adb shell input keyevent 82 46 66 66
这是一个对我来说非常有效的 shell 脚本的链接 - https://github.com/r3bl-alliance/react-native-weather/blob/master/android_rage_menu.sh。我使用 Webstorm,所以我只是将它添加为“运行目标”,这样使用起来非常方便!
【讨论】:
嗯,在我的情况下,我需要做adb shell input keyevent 82 46 66 66
否则它不是“点击”菜单项。无论如何谢谢!
@BlackTea - 我也必须这样做。我更新了我的答案以反映这一点。这是一个对我来说运行良好的实际 shell 脚本的链接 - github.com/r3bl-alliance/react-native-weather/blob/master/…【参考方案5】:
在物理安卓设备(例如小米红米 4)上,您按下菜单按钮一秒钟,然后选择“启用热重载”选项。然后您可能需要使用
重新启动开发服务器react-native run-android
【讨论】:
以上是关于cmd : react-native run-android 在每次文件更改时的主要内容,如果未能解决你的问题,请参考以下文章