Change entry file path of android and ios in react-native project

前端 未结 2 1021
暗喜
暗喜 2020-12-16 00:26

After starting a new project with react-native init awesomeProject, i try to restructure my project, putting index.ios.js and index

2条回答
  •  时光说笑
    2020-12-16 00:57

    I've used the following steps on react-native 0.35

    For development you need to open a file

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

    and override a method of ReactNativeHost called 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
    
      };
    
      // ...
    }
    

    This way the app will know where to fetch the module from a packager server.

    For production, when you build your APK using cd android && ./gradlew assembleRelease you'll have to modify a file

    MyProject/android/app/build.gradle

    and add custom build options, make sure to place them before apply from: "../../node_modules/react-native/react.gradle" line:

    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"
    

    Unfortunately I don't have iOS setup right now, I can't help you with that yet.

提交回复
热议问题