【问题标题】:What are the difference between these React Native start commands?这些 React Native 启动命令有什么区别?
【发布时间】:2019-05-18 09:38:00
【问题描述】:

我已经使用 react native 几个月了。但是,我真的不知道启动命令之间的区别。目前,我在我的项目中使用 npm。但是,我知道可以使用纱线。这些是我真的不明白它们的区别的命令:

exp 启动,exp ios,exp android

react-native run-ios、react-native run-android

npm 启动、npm ios、npm 安卓

在什么情况下哪个更好,为什么?目前,我使用的是 exp,但其他人使用的是 react-native run-ios。我以前用npm ios。

提前谢谢你。

【问题讨论】:

    标签: react-native


    【解决方案1】:

    了解React Native architecture 的概况可能会有所帮助。

    在 react native 中,当您编写 <View/> 时,它会通过桥发送到本机代码并动态转换为 iOS 上的 UIView 或 Android 上的 android.view.Viewreact-native 包中的每个基本组件都是以这种方式实现的。如果您想在这两个平台上添加额外的原生功能,比如使用原生地图组件的库,您最终将不得不将原生库分别包含到您的 Android build.gradle 和 iOS .xcodeproj 中。

    exp CLI 用于启动使用Expo SDK 构建的应用程序。 Expo 本质上是一个预构建的应用程序,为了方便起见,已经包含了一组本地组件;你提供的只是你的 JSX;因此,如果您需要使用任何其他库,建议“弹出”到常规反应本机应用程序。

    react-native run-iosrun-android 使用 iOS 或 Android 工具链构建本机 .app.apk,启动 Metro Bundler,它会在调试时将 JSX 和其他资产(例如图像)压缩并提供给您的设备模式(您可能会看到类似 Loading from localhost:8081 的内容)。

    在 Android 上,如果您启用了 USB 调试,它会启动 adb 服务器以将包含所有本机库的 APK 推送到您的设备上。 run-ios.app 做同样的事情;如果您安装到模拟器,它会自动配置 AppDelegate.mlocalhost:8081 通信,而通过 USB 实时重新加载必须在物理设备上手动配置。

    react-native start 只需启动 Metro 捆绑器,如果您已经安装了该应用程序,这将非常有用。

    npm 开头的命令在package.json 文件中定义为脚本。从 RN 0.57 开始,npm start 只需调用 node node_modules/react-native/local-cli/cli.js start;这与运行react-native start 相同;单独安装according to the docsreact-native-cli会调用node_modules中本地安装的CLI版本。

    【讨论】:

    • “yarn android”呢?
    猜你喜欢
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 2018-08-25
    • 2011-04-10
    • 2016-04-11
    • 1970-01-01
    • 2020-06-28
    相关资源
    最近更新 更多