技术周刊 2019-12-09:WebAssembly 进入推荐规范

技术周刊 2019-12-09:WebAssembly 进入推荐规范

前端快爆

  • Firefox 71 发布:🔗
    • CSS 更新
      • grid-template-columnsgrid-template-rows 支持了 subgrid 值,目前仅 Firefox 支持
      • 支持了跨行特性 column-span,Chrome 和 Safari 均已支持
      • 支持了 clip-path: path,仅 Firefox 稳定支持
      • <img> 的高宽设置支持了 aspect-ratio 特性
    • 开发者工具更新
      • 对 Developer Tools 进行了提速
      • 支持了 WebSocket 消息展现
      • 网络面板支持了全文搜索
      • 可以阻止特定请求
      • console 支持了多行模式


  • Node.js 13.2.0 起默认支持了 ESM,允许在源代码中使用 importexport 来引入相关包:🔗
    • 如下方式将被当作 ESM 上下文
      • .mjs 文件
      • 在 package.json 中声明了 type 为 “module” 的 .js 和无扩展文件
      • node --eval --input-type=module
    • 使用 import 必须追加扩展名
    • ESM 上下文没有 requireexportsmodule.exports__filename__dirname接口
    • 可以 import 相对路径、file:// 开头的绝对路径、包名和包中路径
    • 此前相关特性必须通过 --experimental-module 打开


  • Optional Chaining 正式进入 TC39 第四阶段,将在明年 6 月进入 ECMAScript 2020。🔗
点评:这将是一个更多问号的未来



  • Node.js 官方书写了 npm 包的发版建议:🔗
    • 黑名单 vs 白名单发版
      • 可以用 .npmignore 声明黑名单文件
      • 可以用 package.json 中的 files 配置声明包含白名单文件
      • npm 自动包含 package.jsonREADME.mdLICENSE,也自动排除如 package-lock.json的文件
      • 采用黑名单机制可能导致临时文件意外发版,采用白名单机制可能导致新增的核心文件被遗漏
      • 无论采用哪一种,官方都建议在执行 npm publish 前加入 --dry-run 指令回顾发版的文件
    • 仅发编译结果 vs 发源文件
      • 前者保证了更小的带宽和磁盘使用
      • 后者则允许 npm 带源文件分发功能,以防像 github.com 的其他源不可用
      • tink 将解决此类纠结,保证按需依赖
点评:读完发现居然是 tink 的广告


百宝箱

  • Wasmtime 是一个支持 WebAssembly 和 WASI 运行时环境,允许在非 Web 环境下运行 WebAssembly


  • Comlink 是一个 WebWorkers 的封装,免除了我们自己调用 postMessage 的困扰


编辑:承虎 & 审阅:一丝

编辑于 2019-12-11

文章被以下专栏收录