傻逼 React Native
#Fuck
被 React Native 折磨的一个月
邻居晒花椒,麻了隔壁的。
RN 版本:0.66.5。
首先是装环境,妈的,哥们直奔你的官网,看的是最新的文章,上来直接装了个 JDK 17,启动项目,报错。
妈的,只经历过 Vue2 到 Vue3 的这种变迁的人,哪里知道这个世界上有这么多坑。装环境这一步看的官网就错了,不应该是从官网最新的环境配置开始看。正确方式是:找到对应版本的官方文档,然后点进去看环境配置。应该安装 JDK 11 🤡。
安装依赖,报错,妈的,跟我说网络有问题,网络有个🥚的问题。没办法只能删除 yarn.lock 文件,重新安装依赖,报错,妈的,依赖版本没锁住,不知道哪个依赖版本有问题🤡,只能根据错误信息一个一个排查了。
哥们把 github, stack overflow, reddit 都翻烂了,第一次知道 patch-packages
这种黑魔法,直接修改 node_modules
中的代码🥹。最终好不容易解决了各种依赖的问题,但是你他妈的先报Unexpected token: operator ?
错误是什么意思?google 一下也没有其他人碰到过这种问题,只能靠自己🤡。
哥们以为是 RN 版本太老,导致的 JS 可选链语法或者 TS 可选参数类型标注导致的报错,吭哧吭哧升级 RN 版本,对着 React Native upgrade helper 官网,一行一行的复制粘贴,还他妈的要我改 Java
代码,给哥们眼睛都给看瞎了,一个一个版本的升级测试。每升级一个版本,还得删除 node_modules
重新安装依赖,然后等他妈的编译,如果报错了,不用修改任何代码,直接重新再编译一次就行了,他妈的就是这么玄学,什么都没有做,只需要重新编译一次,有可能第二次就编译成功了,如果没有编译成功,就只能对着比我命还长的控制台报错看,用鼠标滚轮滚到顶部都得半天,然后对着一堆乱七八糟的报错信息,找到第一条报错,google 和 ai 查。
最终是给我干到 0.72 版本来了,依然没有解决这个恶心的问题,给我整崩溃了🤡,就想着打开开发者工具看看吧,「Debug」,妈的,项目就这样启动成功了,并且开发者工具台并没有任何报错,逆天了🤡。
你问我为什么不一开始就打开开发者工具「Debug」,我确实犯蠢了🤡,看到报错信息这么简单。另外我一开始是想打开的,但是 RN 在控制台给我报 warn No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.
。但我的手机其实是连接上的,为了解决这个问题,需要重新运行 yarn run android
重新等他妈的编译几分钟,加上当时「固执」的认为,只需要无脑升级 RN 版本就行了,无需再思考其他的🤡。哥们确实是累了犯蠢了,但是谁他妈的能想到,只要打开「Debug」就能成功启动项目,且不会再出现这个 Unexpected token: operator ?
错误了!
知道了问题所在,无需升级 RN 版本后,为了最小的破坏原有的项目,我又回到最初的起点,0.66.5,成功启动了项目🤡。
虽然现在 Android 已经可以成功启动了,但是无法打开摄像头,一旦打开就会导致项目闪退,安排到最后排查。此外,ios 还是没有办法启动项目的🤡。
为了添加新功能,需要安装新的依赖,而一旦安装后使用这个新依赖,又会导致项目报错🤡,各种地方查了个遍,都没有解决办法,无奈,只能升级 RN 版本...因为在最新的 RN 上,是可以使用这个新依赖的,这是最后的办法。幸好有之前升级时被折磨的经历,第二次升级 RN 版本时顺手多了,很快就升级到了 0.69.0,React 也从 17 升级到了 18,在这个版本测试时发现终于是可以跑起来了,我爱你 React 18😭。
跑 ios 时遇到的坑虽然也不少,但是通过 Xcode 编译后,提供了有更精准更详细的报错信息,只花了一下午的时间就在 ios 上成功跑起来了。
之后还有摄像头在 Android 上可以打开但是报错,忽略报错后可以使用扫码功能;在 ios 上可以打开摄像头,不报错,但是不能使用扫码功能的离谱 bug 🤡,但是哥们累了,懒得喷了。
Fuck React Native. 🖕🏻😅🖕🏻。
福祸相倚
虽然这一个月被 RN 折磨的很难受,也没有写很多代码,大多数时间都在配置环境,google 信息,但是 debug 的经验学到了不少。另外就是一个月没有画网页了😭,没有写 Nextjs 和 Tailwind CSS,我才知道我是真喜欢这些玩意儿,我太想写这些东西了😭。
以前我总是嫌弃 Nextjs 编译卡,热更新慢,我错了😭,身在福中不知福😭。周五下班后,计划着周六开始画页面,将上一位大哥留给我的烂摊子迁移到 Nextjs,激动的一晚上睡不着觉(也可能是下午3点喝了可乐导致的😡)。
等到周六,也就是昨天,从家里寄来的显示器也到了,万事俱备😋,爽写一天 Nextjs,不过咖啡喝多了导致哥们失眠了。也是体会到了深夜写代码的快乐了,以前在学校的时候,作息很规律,除非特殊情况,一般我都会在 22 点上床,准备休息。
主要是有两点考虑,其一是因为作息规律,身体建康,我希望活得久一点,🐀🐀我不想死啊😭,想再多活一会。其二是因为,我不太喜欢室友在背后看着我写代码,虽然我知道他们也看不懂我写的代码,但是这种背后被人盯着的感觉很不舒服。所以我一般会在早起后写代码,早早起来,室友们都还在睡觉,我会换上另外一把更加静音的键盘,轻轻敲击代码~