最近前端圈掀起了一阵 rust 风,凡是能用 rust 重写的前端工具就用 rust 重写,今天介绍的工具就是通过 rust 实现的 babel:swc,一个将 ES6 转化为 ES5 的工具。 而且在 swc 的官网,很直白说自己和 babel 对标,swc和babel命令可以相互替换,并且大部分的 babel 插件也已经实现。 使用rust 的一个优势就是快,比...
从2010 年初开始,为了让服务器端 JavaScript 在浏览器中运行,催生了一系列开发者工具,这些工具旨在为浏览器打包 Node/npm 环境,包括 Browserify(2011 年)、Grunt(2012 年)、Gulp(2013 年)、Babel(2014 年)、Webpack(2014 年)、Rollup(2015 年)、SWC(2019 年)、Vite(2020 年)、ESBuild(2020 年)和 Rspack(2...
reflect-metadata 可能代表的是 JavaScript 作为一个新汇编语言的觉悟,但是目前的事实也证明了这条路比较难。就拿 Typescript 来说,保留的信息比较有限,而且这会让开发者的技术栈严重依赖 Typescript,另外像 esbuild、swc、babel 这些转译器也很难跟进这种特性。 实际上,现在流行的 DI 库,如inversify、tsyringe对 Ty...
之前有对两者进行过一次比较,传送门:2022 年,Babel vs TypeScript,谁更适合代码编译。 总结一下,项目中两者都存在时,最好使用 babel 编译代码,使用 tsc 进行类型检查和生成.d.ts文件。 swcvsesbuild swc和esbuild都是优秀且极速的 JS/TS 编译器,性能也不相上下,很多大公司都开始在生产环境里使用它们了。 在...
swcvsesbuild swc和esbuild都是优秀且极速的 JS/TS 编译器,性能也不相上下,很多大公司都开始在生产环境里使用它们了。 在权衡比较它们时,更多情况是比较集成了它们的上层工具,而不是比较他们本身。 使用了 swc 上层工具有: Vercel 和 Next.js Deno 的 linter,formatter 和 docs ...
在 Harmony 项目开发过程中除了 Mozilla 使用 SpiderMonkey 引擎开发的Narcissus转译器外,还有直到目前还在使用的Babel和TypeScript 语言的转译器。另外还有使用 rust 写的 js 编译器swc,主打速度,打算来替代 babel。 2015年,ECMAScript 2015发布。ECMAScript 2015 之后,由于各个浏览器都开始更快的迭代更新, TC39 开始...
swc swc是Typescript/Javascript编译器,它可以用来编译、压缩和打包JS,同时支持使用插件进行扩展,例如做...
swc Turborepo Nx 在2021 年,早已存在的趋势更进一步。 对原生 ES 模块的接纳仍在继续。Vite已经被广泛采用(比 snowpack 更快),引领了一个新的工具生态系统(如Vitest,一个基于 ES 的现代测试框架)。ES 模块也在 Node.js 生态系统中逐渐被接纳,但这并不容易。TypeScript 甚至在 Node.js 中推迟了对 ES 模块...
Rust 特别有趣,因为它既有很好的性能,又与 JavaScript 有互操作性。NAPI-RS允许 JavaScript 和 Rust 在没有任何序列化成本的情况下相互通信。而 Next.js 正押注 SWC(一款可扩展的 Rust 编译器,允许他们将最流行的 Babel 插件移植到 Rust)。 Parcel2 已经发布了一个新的 Rust 编译器。Rome 工具链也正在用 ...
SWC plugin inferno is a plugin for SWC. It can compile TSX and JSX Babel plugin inferno is a plugin for BabelJs. It can compile JSX. TS plugin inferno is a plugin for TSC. It can compile TSX. Inferno's diff process uses bitwise flags to memoize the shape of objects Child nodes are...