通过react-native init yooweiProject 生成的RN项目(版本基于0.57),目录结构如下

项目结构:

大家可以发现main.jsbundle 是红色的,不存在的,这个属于正常现象。

运行项目,本以为应该没有问题的,但是:

打印的日志:

2018-09-30 15:21:21.194392+0800 yooweiProject[11164:1789544] Unhandled JS Exception: Application yooweiProject has not been registered.

Hint: This error often happens when you're running the packager (local dev server) from a wrong folder. For example you have multiple apps and the packager is still running for the app you were working on before.

If this is the case, simply kill the old packager instance (e.g. close the packager terminal window) and start the packager in the correct app folder (e.g. cd into app folder and run 'npm start').

This error can also happen due to a require() error during initialization or failure to call AppRegistry.registerComponent.

 突然间意识到,本地的RN服务还在刚才的那个yooweiRN项目哪里。果断结束刚才的服务(control+c)

^C

切换到yooweiProject项目根目录

$ cd /Users/galahad/Desktop/ziliao/RN0.57/yooweiProject

$ pwd

/Users/galahad/Desktop/ziliao/RN0.57/yooweiProject

然后开启本地服务

$ react-native start

运行正常

代码如下:

但是main.jsbundle 是红色的,不存在的,虽说属于正常现象,但是我们可以尝试生成。

1、切换到yooweiProject项目根目录,并执行 npm start

$ cd /Users/galahad/Desktop/ziliao/RN0.57/yooweiProject

$ npm start

注意:如果终端已经开启过一个窗口,并且已经运行过该命令npm start(或者是模拟器上面运行RN,已经开启了本地服务),将终端再开启一个窗口,执行 npm start ,会出现下面的问题:

ERR! code ELIFECYCLE

errno 1

ERR! yooweiProject@0.0.1 start: `node node_modules/react-native/local-cli/cli.js start`

ERR! Exit status 1

npm

ERR! Failed at the yooweiProject@0.0.1 start script.

ERR! This is probably not a problem with npm. There is likely additional logging output above.

ERR! A complete log of this run can be found in:

ERR!     /Users/galahad/.npm/_logs/2018-10-10T01_55_04_103Z-debug.log

解决方案就是关掉一个终端的窗口即可。

2、使用curl命令生成 main.jsbundle

由于终端窗口正在连接本地服务,没有办法执行新的命令。我们选中 “终端”图标,右击“新建窗口”完美解决

curl http://localhost:8081/index.ios.bundle -o main.jsbundle

不出意外的出现错误:

error: bundling failed: Error: The resource `/Users/galahad/Desktop/ziliao/RN0.57/yooweiProject/index.ios.js` was not found.

又是 index.ios.js 入口文件名称不同惹的祸,修改命令

curl http://localhost:8081/index.bundle -o main.jsbundle

执行正常,该项目根目录下生成了文件main.jsbundle

注意:上面的这个命令最后用下面的格式

curl http://当前电脑可用的网络ip地址,注意不要写localhost,因为可能取到的ip不是本地有效的ip地址:8081/index.bundle -o main.jsbundle

3、将生成的jsbundle文件导入到当前的项目中

4、在AppDelegate.m中选择使用main.jsbundle注释掉

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];

打开注释:

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

但是这种方式进行的总是会报错:

暂时没有解决,还需尝试解决问题!

React Native 之 main.jsbundle生成方法的更多相关文章

  1. react native 手动打包jsbundle文件

    1 在项目目录/android/app/src/main下建一个文件夹assets 2 react-native bundle --platform android --dev false --ent ...

  2. 关于react native 路由传值及回调方法的理解

    提示:本路由需要通过 this.props.navigation.state.params 获取上一路由传过来的值

  3. React Native学习笔记之2

    1:如何创建一个react native工程 首先进入到指定文件夹里面,然后在终端执行react-native init ReactNativeProject :其中ReactNativeProjec ...

  4. 《React Native 精解与实战》书籍连载「React Native 源码学习方法及其他资源」

    此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React Native 源码学习方法及其他资源. 最后的章节给大家介绍 React Native ...

  5. 【React Native开发】React Native进行签名打包成Apk

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50525976 本文出自:[江清清的博客] (一)前言 [好消息]个人 ...

  6. React Native知识12-与原生交互

    一:原生传递参数给React Native 1:原生给React Native传参 原生给JS传数据,主要依靠属性. 通过initialProperties,这个RCTRootView的初始化函数的参 ...

  7. Hybrid App 和 React Native 开发那点事

    简介:Hybrid App(混合模式移动应用)开发是指介于Web-app.Native-App这两者之间的一种开发模式,兼具「Native App 良好用户交互体验的优势」和「Web App 跨平台开 ...

  8. React Native填坑之旅 -- FlatList

    在React Native里有很多种方法来创建可滚动的list.比如,ScrollView和ListView.他们都各有优缺点.但是在React Native 0.43里增加了两种行的list vie ...

  9. React Native之样式

    样式 React Native 不实现 CSS,而是依赖于 JavaScript 来为你的应用程序设置样式.这是一个有争议的决定,你可以阅读那些幻灯片,了解背后的基本原理. 声明样式 在 React ...

随机推荐

  1. VC++中关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别

    而OnPaint()是CWnd的类成员,同时负责响应WM_PAINT消息. OnDraw()是CVIEW的成员函数,并且没有响应消息的功能.这就是为什么你用VC成的程序代码时,在视图类只有OnDraw ...

  2. HDU2544(dijkstra_邻接矩阵最水的题没有之一)

    https://cn.vjudge.net/problem/HDU-2544 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场 ...

  3. gulp插件 run-sequence(同步执行任务)

    功能描述 gulp默认使用最大并发数执行任务,也就是说所有的任务几乎都是同时执行,而不会等待其它任务.但很多时候,任务是需要有先后次序的,比如要先清理目标目录,然后再执行打包. run-sequenc ...

  4. 内存管理与正则(re)模块

    内存管理 垃圾回收机制 不能被程序访问到的数据,就称之为垃圾 也就是失去了一个能够访问到值数据的名称空间,导致在内存中无作为 引用计数:是内存管理的原理 引用计数是用来记录值的内存地址被记录的次数 每 ...

  5. 接口与协议学习笔记-AMBA片上通信协议_APB_AHB_AXI_AXI4不同版本(二)

    随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用.在基于IP复用的SoC设计中,片上总线设计是最 ...

  6. c# multi-ply download ui

    first neet add an user control "DownloadBar": /* Created by SharpDevelop. User: gwang Date ...

  7. mysql 5.7.12 winx64安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.12winx64安装配置方法图文教程,感兴趣的朋友可以参考一下   之前安装mysql时未做总结,换新电脑,补上安装记录,安装的时候,找了些网友的安装记录, ...

  8. 8-[表操作]--foreign key、表与表的关系

    1. foreign key (1)快速理解foreign key 员工信息表有三个字段:工号 姓名 部门 公司有3个部门,但是有1个亿的员工,那意味着部门这个字段需要重复存储,部门名字越长,越浪费 ...

  9. 4542: [Hnoi2016]大数

    4542: [Hnoi2016]大数 链接 分析: 如果p等于2或者5,可以根据最后一位直接知道是不是p的倍数,所以直接记录一个前缀和即可. 如果p不是2或者5,那么一个区间是p的倍数,当且仅当$\f ...

  10. SpringCloud-微服务网关ZUUL(六)

    前言:前面说过,由于微服务过多,可能某一个小业务就需要调各种微服务的接口,不可避免的就会需要负载均衡和反向代理了,以确保ui不直接与所有的微服务接口接触,所以我们需要使用一个组件来做分发,跨域等各种请 ...