【问题标题】:Cordova + react with hot reload while development modeCordova + 在开发模式下对热重载做出反应
【发布时间】:2019-04-24 19:19:46
【问题描述】:

我发现了这个问题Cordova with Create-react-app

当我处于开发模式并且应用程序在 android 模拟器中运行时,我是否能够实现实时重新加载?我害怕每次我想看到变化时都必须构建应用程序。

cordova 是否能够观察在开发模式下运行的 react-app 并从 index.js 读取源代码以监听变化?

假设我想实现这样的目标:

  1. 创建科尔多瓦项目。
  2. 在 /www 文件夹(或适用于我的用例的任何其他文件夹...)中创建 react 项目。
  3. 从 root 运行 cordova run android 以在 Android 模拟器中运行应用程序,并从 /www 目录运行 npm start
  4. cordova 应该能够在 Android 模拟器中监听变化并实时重新加载 react 应用程序。
  5. 我需要能够访问 react 代码中的 cordova 实例才能使用插件等。

我找到了一些与 webpack-server-dev(使用 webpack v1...)相关的解决方案,但它们似乎都不起作用,我需要重新启动 cordova run android 命令以查看代码中的更改。否则,这些模板不提供在开发模式下启用对 cordova 插件实例的访问的功能

那么npm build 后跟cordova run android 真的是开发cordova + react 应用程序的唯一方法吗?

注意 1:我想使用 SQLite cordova plguin 以仅在浏览器模式下进行开发,然后在完成后为 android/ios 构建应用程序,我认为这不是我的情况。请问您有什么建议吗?

注意 2:我不能使用 react-native,因为我需要使用 openlayers 地图库。

非常感谢您的回答!

【问题讨论】:

    标签: reactjs cordova webpack


    【解决方案1】:
    1. 使用 --host 0.0.0.0 运行 webpack-dev-server 以使其可以从外部访问
    2. 更改您的 config.xml 并使 <content src="..." /> 指向您的本地 IP 地址和您的开发端口,例如<content src="http://192.168.0.2:3000/" />
    3. 添加白名单条目(有关更多详细信息,请参阅 cordova whitelist-plugin 文档):例如<allow-navigation href="http://192.168.0.2:3000/*" />
    4. 如果您需要通过cordova 获得本机功能,您需要在您的开发服务器中提供所有的cordova 和cordova-plugin javascript 文件。请同时检查此答案(符号链接部分):https://stackoverflow.com/a/46545408/1930339

    【讨论】:

    • 谢谢!希望它对某人有所帮助:) 我切换到 react-native
    猜你喜欢
    • 2016-08-18
    • 2017-06-24
    • 2017-09-18
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多