#小程序

14 篇文章

JSVM2:变量提升与闭包,两阶段扫描与一道经典面试题

上一篇把骨架搭完了:visitor 按节点类型分发,Path 带着 scope 和 ctx 往下传,Scope 链管所有名字的来去。这篇讲这套骨架上长出来的第一个反直觉语义:变量提升。顺着它会碰到闭包,碰到那道 循环里 和 的面试题,最后还得坦白一件没做的事:TDZ。 提升不是挪代码,是先跑一遍声明 讲变量提升…

JSVM2:解释器的骨架,visitor、Path 与作用域链

上一篇说了为什么要自研,以及整体链路:源码经 @babel/parser 出 AST,然后交给解释器求值。这篇拆开解释器本身。它的中枢代码只有 5 行,真正花心思的是两个抽象:Path 和 Scope。前者向 Babel 借的,后者对应 ECMA-262 里的环境记录。这套结构的雏形在 [2020 年那篇综述](/p…

小程序工程化思考

和传统工程化对比 先看下传统前端工程化关注的事情 (from umi) image.png image.png 小程序可做的就相对很少,源于技术本身的约束性,我们做一个对比: 框架角度:目前市面上有 kbone,taro,remax/r2m,mpvue,mpx等等选择,从优选业务场景覆盖的移动设备角度看均有明显的体验…

使用TS 开发 JS 虚拟机

背景 在我们的小程序&低代码平台中,有需要执行动态下发代码的诉求。世面上已知的一些 vm 没有完整通过 es5 或 es2015 测试用例的,无法在生产环境使用。因此需要自研一个 JSVM 引擎。 目前已放到 github 上 :jsvm 2 传送门。 目前除了 WithStatement 语句外,其他 es5 特性…

使用 完整react能力 开发小程序

最近这一年在小象负责移动端相关的架构工作,之前提到我们游戏基于 pixi 自研了一个游戏框架,成功的将 react 桥接到 pixi 上。这给了我很大的信息,开始思考是否能让 react 跑在任意平台上、 我们的小程序是一个电商业务比较复杂,可以微信搜索“美团买菜”体验一下,和 APP 的交互都是对齐的。这就导致这个…

小程序实时日志

背景 小程序开发的过程中,我们遇到一个比较麻烦的问题,在真机调试的时候是看不到日志的。本来我们只需要支持美团小程序,这个情况还可以通过VConsole来处理,但是后面我们开始支持美团小程序开发的时候,因为机制问题没有支持service里面的日志没有打印出来,就这个问题就很麻烦了。 另外很多时候我们需要查看网络请求具体…