ReactNative项目升级避坑指南

Stella981
• 阅读 650

众所周知,ReactNative的项目升级是一个老大难问题,相信经历过版本升级的老铁们,心中的酸(ku)甜(bi)苦(ha)辣(ha)的感觉记忆犹新。 因为ReactNative项目升级设计到Android项目,IOS项目以及Javascript项目三方面的修改,处理起来还是很麻烦的,经常是解决一个报错又出来一个新的报错,红色的报错框仿佛在一直提示升级的困难重重。 针对棘手的ReactNative升级问题,Facebook团队也给出了两种方式帮助开发者进行项目升级:

  • 使用React Native CLI的update命令的方式来自动升级
  • 使用Upgrade Helper帮助网站辅助开发者手动进行项目升级

使用React Native CLI

1.使用update命令升级

react-native upgrade 升级最新稳定版本
or
react-native upgrade 0.61.0-rc.0 // 命令后跟具体版本号,升级至指定版本

2.处理冲突文件 升级后Android或者iOS项目文件,可能会产生冲突文件,需要进行解决。 ReactNative项目升级避坑指南

Upgrade Helper(升级帮助网站)

1.打开Upgrade Helper网站后,会出现如下页面: ReactNative项目升级避坑指南 左边选择你当前项目的版本号, 右边选择你想要升级的目标版本号,选择后,点击Show me how to update蓝色按钮。 2.在上述操作完成之后,就出现了如下的类似的很多文件内容: ReactNative项目升级避坑指南 上面生成的文件改动内容,是Upgrade Helper基于一个完全初始化的基础React Native项目通过使用 rn-diff-purge, react-diff-view and create-react-app.产生的升级文件改动内容,在实际项目升级中还是要项目需要修改文件。

总结

虽然ReactNative项目的升级工作存在坑多,处理起来比较麻烦的问题,但是通过借鉴参考官方提供的升级指导,还是可以顺利的进行完成版本升级的。

可能遇到出现的问题

上周尝试升级自己的一个ReactNative Demo项目,在升级完成之后,无法进行debug调试,报错:Unable to resolve module `./debugger-ui/debuggerWorker.js` from 解决方案:

watchman watch-del-all
react-native start --reset-cache

其他

升级过程中,可能会遇到缓存导致问题,给大家整理了一些有用的命令来处理:

  1. Clear watchman watches: `watchman watch-del-all`.
  2. Delete the `node_modules` folder: `rm -rf node_modules && yarn install`.
  3. Reset Metro Bundler cache: `rm -rf $TMPDIR/react-*` or `npm start -- --reset-cache`. 
  4. Remove haste cache: `rm -rf $TMPDIR/haste-map-react-native-packager-*`.

大家在升级中遇到什么问题,欢迎大家在评论区或者我的公号后台留言,一起讨论一下。

觉得文章不错的,给我点个赞哇,关注一下呗!
技术交流可关注微信公众号【君伟说】,加我好友一起探讨 微信交流群:加好友(备注技术交流)邀你入群,抱团学习共进步

ReactNative项目升级避坑指南

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
SpringBoot整合升级Spring Security 报错 【The request was rejected because the URL was not normalized】
前言最近LZ给项目框架升级,从Spring1.x升级到Spring2.x,在这里就不多赘述两个版本之间的区别以及升级的原因。关于升级过程中踩的坑,在其他博文中会做比较详细的记录,以便给读者参考,不要掉进同样的坑里。这里我们讨论一个关于URL中包含双斜杠被拦截的问题。发现问题升级框架之后,测试一个功能时,发现报错Htt
Easter79 Easter79
3年前
SpringBoot整合升级Spring Security 报错 【The request was rejected because the URL was not normalized】
前言最近LZ给项目框架升级,从Spring1.x升级到Spring2.x,在这里就不多赘述两个版本之间的区别以及升级的原因。关于升级过程中踩的坑,在其他博文中会做比较详细的记录,以便给读者参考,不要掉进同样的坑里。这里我们讨论一个关于URL中包含双斜杠被拦截的问题。发现问题升级框架之后,测试一个功能时,发现报错Htt
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
3年前
Eclipse 中的Maven常见报错及解决方法
1.不小心将项目中的MavenDependencies删除报错!(https://oscimg.oschina.net/oscnet/fd35e500e2580bca2afb81f35233b87a6ee.png)项目报错:!(https://oscimg.oschina.net/oscnet/8623bd4293fea39ca83a6
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这