9

技术周刊 2021-05-27:让 Node.js 跑在浏览器中的 WebContainer

 3 years ago
source link: https://zhuanlan.zhihu.com/p/375654205
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

技术周刊 2021-05-27:让 Node.js 跑在浏览器中的 WebContainer

  • TypeScript 4.3 RC 已发布,将在 5 月底进入正式:
    • 语法更新:
      • class 上支持了形如 #private 的私有成员变量或私有成员函数声明;
      • getter 和 setter 方法可以分别设置类型了;
      • class 上允许通过 override 来声明函数对父类同名函数进行了覆写;
      • 模版字符串将默认生成模版字符串类型,而非原先的 string,以配合 4.0 引入的模版字符串语法;
      • class 上允许声明 static 的索引签名了;
    • 编译器更新:
      • 支持了 noImplicitOverride 选项来强制显式追加 override 声明;
      • strictNullChecks 打开时,对 promise 进行直接判断将报错,避免用户遗漏 await;
      • 枚举类型和数字字面量比对时,将判定其内容是否重合;
    • 工具链更新:
      • 在 VSCode 中输入 import 后,不强制输入 from 'xx' 也可以触发代码自动补完;
      • 默认的 lib.d.ts 移除了没有浏览器实现的接口。
  • Firefox 意欲实现 CSS 的 d 属性,用于在 CSS 层面控制 SVG <path> 的路径。
  • 因发音可能有种族主义的误解,Node.js 官方将 N-API 更名为 Node-API:
    • 所有的官方文档和博客均改名;
    • 内部文件夹、新的 Symbol、类型、宏和定义都改名为其对应形式;
    • napi_statusNAPI_MODULENapi 命名空间和旧的 Symbol 将不变以避免影响存量代码;
    • N-API 由 Node.js 9.0.0 版本正式引入,其最初的命名意为 ABI 稳定(即二进制应用 API 稳定)的本地插件。

点评:我读了几遍,愣是没找到改变点和不变点的一致性。ABI 稳定最终变 API 不稳定,感觉有点讽刺。

  • CSS 已经 25 周年了,Eric A. Meyer 为我们分享了 25 年前 W3C 的 CSS 会议的笔记,及他如何创建了 CSS 1 的测试套件的。
  • StackBlitz 推出了 Web IDE WebContainers,它的特点是:
    • 直接在浏览器中使用 WebAssembly 跑 Node.js;
    • 使用 File System Access API 进行本地文件读写;
    • 直接可用 Chrome 开发者工具调试 Node.js 代码;
    • 用 ServiceWorker API 进行浏览器端的服务器搭建;
    • 不再需要依赖 npm install,每次刷新均访问最新的依赖包版本;支持不同的 npm 源在路线图中
    • 完成构建的速度比 yarn / npm 快 20%;
    • 开发环境完全放在浏览器中后,用户不再需要担心 npm 包的安全性问题,浏览器提供的安全机制比本地二进制文件或远程虚拟机更加健壮。

点评:这个思路很有意思,知乎评论说利好在线编程可笑死我了

  • domevents.dev 可视化的展示了 DOM 事件的流程,让团队里的新人看看吧
v2-bbe6ee9c842c402e51fc3a30fe1db6ea_b.jpg



编辑:承虎 & 审阅:一丝


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK