路漫漫其修远兮, 吾将上下而求索

0%

昨天着实被同事给上了一课. 事情是这样的, 项目中之前打包用到了老式打包工具 (相对编译时间很长那种), 于是就要把项目升级成编译速度更快的 esbuild. 特么的就我负责的模块出了问题…

背景

在我们的项目从 gulp 编译切换到 esbuild 的过程中, 其他同学负责的代码都是使用的非常常规的三方库. 而我的代码中用到了 crypto. 在 gulp 中可以使用 browserify 插件. 直接给把 node 模块给 shim 进来了. 但是 esbuild 负责处理 node 模块的 @esbuild-plugins/node-modules-polyfill 木有这个逻辑…

阅读全文 »

阅读 metamask 的 package.json 的过程中, 第一个吸引我注意的 npm 包就是 post-message-stream. 无它, 唯眼熟尔.

首先想到 postMessage

一个窗口可以获得对另一个窗口的引用 (比如 targetWindow = window.opener), 然后在窗口上调用 targetWindow.postMessage() 方法分发一个 MessageEvent 消息. 接收消息的窗口可以根据需要自由处理此事件 (en-US). 传递给 window.postMessage() 的参数(比如 message)将通过消息事件对象暴露给接收消息的窗口

简单的说, 你首先打开一个页面 index, 然后在这个页面通过 window.open() 打开一个子页面, 此时就能通过 postMessage 实现两个父子页面之间的通信. 此外postMessage 还常用于 webWorker 和主进程之间的通信.

阅读全文 »

再不学习 web3 怕是要被淘汰了

为了跟上新技术的潮流, 咱也开始以太坊最知名的插件 - 小狐狸(metamask) 的源码学习(目前最新版本为@10.19.0), 预计不会太难 ~

20220926144425

阅读全文 »