JavaScript Oxidation Quancher(Oxc)由 Evan You 鱿鱼溪、Jason米勒,Preact的创始人、Yagiz Nizipli,Node.js性能团队创始人、StackBlitz首席执行官Eric Simons、多位React团队成员代言,由基于Rust的统一工具链领域的先驱Biome and Ruff提供灵感。当然,Oxc也是VoidZero的一个项目。
JavaScript Oxidation Quancher(Oxc)是一个用Rust编写的用于使JavaScript语言的高性能的工具集合,重点在于为JavaScript构建基本的编译工具:parser, linter, formatter, transpiler, minifier and resolver。目标是为下一代JavaScript工具链提供支持,作为VoidZero的一部分。关于 voidzero具体可以看我之前的文章《尤大新公司,voidzero-javascript统一工具链》。
像Preact、Shopify、字节跳动和Shopee这样的项目和公司都已经在使用oxlint来做linting、Rolldown、Biome、swc-node和Mako也在使用oxc_resolvercrate进行模块解析。
JavaScript Oxidation Quancher(Oxc)目前支持parser、linter、transformer、resolver等工具Tool。以下是简单介绍:
- Oxlint被设计用来捕获错误或无用的代码,而不需要任何默认配置,目前有超过400条规则,包括eslint、typescript、eslint-plugin-react、eslint-plugin-jest、eslint-plugin-unicorn、eslint-plugin-jsx-a11 y等等。比ESLint快50 - 100倍,并随CPU内核数量而扩展。不过在当前阶段,oxlint并不打算完全取代ESLint。而是当ESLint的缓慢成为工作流中的瓶颈时,它可以作为一种增强。所以建议在您的lint staged或CI设置中在ESLint之前运行oxlint,以获得更快的反馈循环,因为在大型代码库上运行它只需要几秒钟。当然,您也可以使用eslint-plugin-oxlint关闭oxlint已经支持的ESLint规则,以便于在使用ESLint的同时享受oxlint的速度。
- oxcparser 用于解析 JavaScript 和 TypeScript,输入包括内存区域、源字符串和源类型,返回包含 AST 和错误信息的 ParserReturn。oxcparser完全支持最新的稳定ECMAScript语法、TypeScript、JSX and TSX,而且比swc解析器快3倍,支持解析.js(x)和.ts(x)。
- oxc-transform可以将转换 TypeScript 代码为普通 JavaScript 代码即ESNext、支持将React JSX转换为ESNext,内置React Refresh、支持从 TypeScript 代码中提取孤立声明,生成 .d.ts 文件。
- oxc_resolver 用于 Node.js 中 CommonJS 和 ECMAScript 模块解析,与 Webpack 的 enhanced-resolve 对齐,所有配置都与webpack/enhanced-resolve保持一致,但是 比webpack/enhanced-resolve快28倍。
关于作者
作者:Wandra
内容:算法 | 趋势 |源码|Vue | React | CSS | Typescript | Webpack | Vite | GithubAction | GraphQL | Uniqpp。
专栏:欢迎关注呀🌹
本专栏致力于分享技术趋势,如果本文对你有帮助的话,欢迎点赞或者关注☘️
oxc官网:oxc.rs/