更改 react-native 项目中 android 和 ios 的条目文件路径
在使用react-native init awesomeProject开始一个新项目后,我尝试重组我的项目,将index.ios.js和index.android.ios放在一个名为src的公共文件夹中。
当我执行react-native run-android时,我得到以下错误:
我必须在哪里更改为在正确的路径中对条目文件进行反应本机搜索?
在使用react-native init awesomeProject开始一个新项目后,我尝试重组我的项目,将index.ios.js和index.android.ios放在一个名为src的公共文件夹中。
当我执行react-native run-android时,我得到以下错误:
我必须在哪里更改为在正确的路径中对条目文件进行反应本机搜索?
我在 react-native 0.35 上使用了以下步骤
对于开发,您需要打开一个文件
MyProject/android/app/src/main/java/com/MyProject/MainApplication.java
并重写名为 :ReactNativeHost
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
};
// ...
}
这样,应用将知道从何处获取打包服务器中的模块。
对于生产环境,当您使用APK构建APK时,您必须修改文件cd android && ./gradlew assembleRelease
MyProject/android/app/build.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设置,我还不能帮助你。
感谢迈克尔的信息!我为iOS做了案例,并为Android和iOS提供了完整的答案。
与Android一样,开发和生产的答案是不同的。
对于开发(调试模式)
转到(G)AppDelegate.m
将参数设置为条目文件的路径和您在 RN js 中注册的组件。例如,如果我想将条目 js 文件更改为 js/screen/LoginScreen.js并将组件更改为 LoginScreen,请执行以下操作:jsBundleURLForBundleRoot
moduleName
jsCodeLocation = [[RCTBundleURLProvider sharedSettings]
jsBundleURLForBundleRoot:@"js/screen/LoginScreen"
fallbackResource:nil];
rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"LoginScreen"
initialProperties:nil
launchOptions:launchOptions];
对于生产(发布模式)
对于生产模式,Xcode 在构建时会生成一个 jsbundle 文件。除了我们为调试模式所做的工作之外,我们还需要告诉 Xcode jsbundle 的入口文件。
转到当前目标的“构建阶段”选项卡。在“捆绑 React Native 代码和映像”阶段,将条目文件附加到 shell 的末尾
有关如何在iOS上运行开发/生产模式的信息,请单击此处