更改react-native项目中android和ios的入口文件path

使用react-native init awesomeProject启动一个新项目后,我尝试重新构build项目,将index.ios.jsindex.android.ios放入一个名为src的公用文件夹中。

当我执行react-native run-android时 ,出现以下错误:

在Android设备上的错误

在哪里我必须改变,以正确的path反应原生search条目文件?

我已经使用了反应原生0.35的以下步骤

为了发展,你需要打开一个文件

MyProject/android/app/src/main/java/com/MyProject/MainApplication.java

并重写一个名为getJSMainModuleName方法:

 package com.MyProject; // ... public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { // ... // ADD THE LINES BELOW @Override protected String getJSMainModuleName() { return "src/index.android"; } // ADD THE LINES ABOVE }; // ... } 

这样,应用程序就会知道从包装服务器获取模块的位置。

对于生产,当您使用cd android && ./gradlew assembleRelease构buildAPK时,您将不得不修改文件

MyProject/android/app/build.gradle

并添加自定义生成选项,请确保将它们放在apply from: "../../node_modules/react-native/react.gradle"之前apply from: "../../node_modules/react-native/react.gradle"行:

 apply plugin: "com.android.application" import com.android.build.OutputFile // ... // ADD THE LINES BELOW project.ext.react = [ // the entry file for bundle generation entryFile: "src/index.android.js", ] // ADD THE LINES ABOVE // ... apply from: "../../node_modules/react-native/react.gradle" 

不幸的是,我现在没有安装iOS,我还是不能帮你。

感谢Michael的信息! 我做了iOS的情况,并为Android和iOS完成答案。

与Android相同,开发和生产的答案是不同的。

  1. 开发(debugging模式)

    AppDelegate.m

    将参数jsBundleURLForBundleRoot设置为条目文件的path, moduleName作为您在RN js中注册的组件。 例如,如果我想将条目js文件更改为js / screen / LoginScreen.js,并将该组件更改为LoginScreen,请执行以下操作:

     jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"js/screen/LoginScreen" fallbackResource:nil]; rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"LoginScreen" initialProperties:nil launchOptions:launchOptions]; 
  2. 对于生产(发布模式)

对于生产模式,Xcode在生成时生成一个jsbundle文件。 除了我们为debugging模式所做的,我们需要告诉Xcode jsbundle的入口文件。

进入当前目标的“ Build Phases ”标签。 在“ Bundle React Native代码和映像 ”阶段,将您的条目文件追加到shell的末尾

在这里输入图像说明

有关如何在iOS上运行开发/产品模式的信息