使用jspatch进行热修复的实战总结

简介: 最近正式在线上项目中集成了jspatch进行热修复,这里做一个简单的总结。工具篇:首先,用xcode来编辑js非常困难,基本上没有缩进,完全需要手写;经过研究发现使用 Sublime text3 结合 jsformat 插件,可以很好的编辑js脚本。

最近正式在线上项目中集成了jspatch进行热修复,这里做一个简单的总结。

工具篇:

首先,用xcode来编辑js非常困难,基本上没有缩进,完全需要手写;经过研究发现使用 Sublime text3 结合 jsformat 插件,可以很好的编辑js脚本。

一般来说,我们可以使用JSConvertor对js进行转换,然后在sublime text中进行编辑和格式化,通过xcode run代码来查看效果。

ps: jsformat 快捷键: The default key binding is "ctrl+alt+f"


一次热修复实践中遇到的转换问题:

1. js是动态类型的语言,因此所有的类型转换代码全部需要删除掉。

2. 注意不要遗漏defineClass。

3. 所有的枚举或是宏需要用值来替换。

4. 判空不要和null比较,而是直接用(xxx)和(!xxx)。

5. selector直接替换成字符串即可。

6. console.log("testing3");

这样的格式用来打印debug日志;建议在代码的分段都打印一些日志,可以用来判断是什么环节的问题。

7. 工具自动转换会自动去掉一个原来的@符号(在字符串拼接等情况下要注意),这个时候需要手动加回去。

8. stringwithformat只支持%@。

9. nsstring、array、dic等注意类型,js和oc类型不同,必要时使用.toJS()来转换到js.

10. block 作为参数传递的时候需要手动转换其类型,具体参考jspatch的文档。



上面说的其实也都是一些基本的东西,大家遇到问题去查找官方文档对应的wiki,耐心一点就可以。

https://github.com/bang590/JSPatch/wiki/JSPatch-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95#%E8%A6%86%E7%9B%96%E6%96%B9%E6%B3%95

目录
相关文章
|
11月前
|
存储 关系型数据库 测试技术
快速入门nest.js(10/10)--测试
初识Jest 很好的错误消息和内置Mocking实用程序 可靠的并行运行测试 优先运行以前失败的测试 根据测试文件花费的时间重新组织测试运行
254 0
|
11月前
|
算法
vue2-patch流程分析
我们在上篇文章分析了虚拟节点的创建及渲染流程,其中也有简单分析了 patch 过程,但是对于新旧节点的对比逻没有去仔细分析,所以我们打算好好梳理下 patch 的整个流程。
|
JavaScript 应用服务中间件 nginx
vue + elementui + webpack4打包上线 history 和 hash的区别
vue + elementui + webpack4打包上线 history 和 hash的区别
vue + elementui + webpack4打包上线 history 和 hash的区别
JSPatch下发笔记5
JSPatch下发笔记5
81 0
|
JavaScript
JSPatch下发笔记10
JSPatch下发笔记10
86 0
|
JavaScript
JSPatch下发笔记7
JSPatch下发笔记7
104 0
JSPatch下发笔记6
JSPatch下发笔记6
79 0
|
JavaScript
JSPatch下发笔记4
JSPatch下发笔记4
97 0
|
JavaScript
JSPatch下发笔记1
JSPatch下发笔记1
85 0
|
JavaScript
JSPatch下发笔记2
JSPatch下发笔记2
111 0