【问题标题】:Update a react-native applications to load the JavaScript bundle from a server running on a non-standard (8081) port更新 react-native 应用程序以从运行在非标准 (8081) 端口上的服务器加载 JavaScript 包
【发布时间】:2016-12-14 09:46:48
【问题描述】:

我在公司 Macbook 上运行 react-native,它在端口 8081 上运行 McAfee.. 这个进程是不可终止的(在 kill -9 后不断弹出)

所以我可以运行 react-native 捆绑服务器的唯一方法是通过这种方式指定不同的端口: react-native start --port=8088

现在官方文档 (https://facebook.github.io/react-native/docs/troubleshooting.html) 说:

您还需要更新您的应用程序以从新端口加载 JavaScript 包。打开应用内开发人员菜单,然后转到开发设置 → 调试设备的服务器主机并将 8081 替换为您选择的端口。

问题是: 如果我无法在模拟器模拟器中加载应用程序,我该如何启动Developer menu? (react-native --run-ios) 不断崩溃,因为它试图访问 8081

谢谢!

【问题讨论】:

标签: react-native


【解决方案1】:

我有同样的问题。我认为这是 React Native 文档中的错误。

如果您的捆绑程序已经在端口 8088 中运行,您还可以在 React Native 的代码中修改 React Native 的默认端口。这可以在 RCTBundleURLProvider 中完成:

转到您的 XCode 资源管理器并搜索此文件

你应该改变
const NSUInteger kRCTBundleURLProviderDefaultPort = 8081;
对于
const NSUInteger kRCTBundleURLProviderDefaultPort = 8088;

现在一切都应该在端口 8088 上运行

当然这是一个补丁,永远不应该修改 React Native 的代码,但它可以作为一种解决方法,直到它在未来的版本中得到修复

【讨论】:

    【解决方案2】:

    原来我必须改变: 在 RCTBundleURLProvider.m

    const NSUInteger kRCTBundleURLProviderDefaultPort = 8081;

    const NSUInteger kRCTBundleURLProviderDefaultPort = 8088;

    RCTWebSocketExecutor.m
    port = [[[_bridge bundleURL] port] integerValue] ?: 8081;

    port = [[[_bridge bundleURL] port] integerValue] ?: 8088;

    最后:
    在 Xcode 中打开 iOS 项目,在项目导航器 > Libraries > React.xcodeproj > Build Phases 中,将所有出现的 8081 更改为 8088。

    【讨论】:

      【解决方案3】:

      如果您无法通过kill -9 终止您的应用程序,则只需运行pkill node 命令即可终止您所有正在运行的端口。

      【讨论】:

        猜你喜欢
        • 2021-09-03
        • 1970-01-01
        • 2021-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多