精读《Rust 是 JS 基建的未来》

Rust Is The Future of JavaScript Infrastructure 这篇文章讲述了 Rust 正在 JS 基建圈流行的事实:Webpack、Babel、Terser、Prettier、ESLint 这些前些年才流行起来的工具都已有了 Rust 替代方案,且性能有着 10~100 倍的提升。

前端基建的迭代浪潮从未停歇,当上面这些工具给 Gulp、js-beautify、tslint 等工具盖上棺材盖时,基于 Rust 的新一代构建工具已经悄悄将棺材盖悬挂在 webpack、babel、prettier、terser、eslint 它们头上,不知道哪天就会盖上。

原文已经有了不错的 中文翻译,值得一提的是,原文一些英文名词对应着特定中文解释,记录如下:

  • low-level programming:低级编程 底层编程。

  • ergonomics:人体工程学 人机工程学。

  • opinionated:自以为是,固执的 开箱即用的。

  • critical adoption:批判性采用 技术选型临界点。

精读

本文不会介绍 Rust 如何使用,而会重点介绍原文提到的 Rust 工具链的一些基本用法,如果你感兴趣,可以立刻替换现有的工具库!

swc

swc 是基于 Rust 开发的一系列编译、打包、压缩等工具,并且被广泛应用于更多更上层的 JS 基建,大大推动了 Rust 在 JS 基建的影响力,所以要第一个介绍。

swc 提供了一系列原子能力,涵盖构建与运行时:

@swc/cli

@swc/cli 可以同时构建 js 与 ts 文件:

const a = 1
npm i -D @swc/cli
npx swc ./main.ts

# output:
# Successfully compiled 1 file with swc.
# var a = 1;

具体功能与 babel 类似,都可以让浏览器支持先进语法或者 ts,只是 @swc/cli 比 babel 快了至少 20 倍。可以通过 .swcrc 文件做 自定义配置。

@swc/core

你可以利用 @swc/core 制作更上层的构建工具,所以它是 @swc/cli 的开发者调用版本。基本 API 来自官网开发者文档:

const swc = require("@swc/core");

swc
  .transform("source code", {
    // Some options cannot be specified in .swcrc
    filename: "input.js",
    sourceMaps: true,
    // Input files are treated as module by default.
    isModule: false,

    // All options below can be configured via .swcrc
    jsc: {
      parser: {
        syntax: "ecmascript",
      },
      transform: {},
    },
  })
  .then((output) => {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值