每次有前端新轮子发布,官方的标题总是如此夸张,这次轮到
-
性能:处理代码的速度比
ESLint 快50-100 倍。 -
安全:
Rust 的内存安全保证消除了某些类别的错误。 -
兼容性:目前内置了超过
200 条规则,且列表还在不断增加,来自eslint、typescript、eslint-plugin-react、eslint-plugin-jest、eslint-plugin-unicorn 和eslint-plugin-jsx-a11y ;支持.eslintignore 以及ESLint 的注释忽略规则。。
但是对于取代
现阶段,
oxlint 无意完全取代ESLint ,当ESLint 的缓慢成为你工作流程中的瓶颈时,它可以作为增强功能。
为了更快的反馈循环,官方建议在
要在
npx oxlint@latest // npm pnpm dlx oxlint@latest // pnpm yarn dlx oxlint@latest // yarn bunx oxlint@latest // bun deno run oxlint@latest // deno
性能
在现实场景中,
来自有
Oxlint 对我们在Shopify 的应用是一个巨大的成功。我们以前的lint 设置运行需要75分钟,所以我们在CI 上配置了40 多个工作节点。而相比之下,Oxlint 在单个工作节点上对同样的代码库进行lint 检查只需要大约10 秒,而且输出的结果更易于解读。在我们迁移时,我们甚至发现了一些被我们旧设置隐藏或跳过的错误!
大部分性能提升来自于
根据在不同项目中的实际测试,
这里有一个在
准确性
上手简单
设置新的
但是
在没有
Node.js 的环境下,你可以直接从最新的GitHub 版本(https://github.com/oxc-project/oxc/releases/tag/oxlint_v0.0.20 )去下载二进制文件。
易于阅读的检测结果
理解
我们还可以在
整合规则
插件在
但是,大家可能会喜欢独立的
命令
-
npx oxlint@latest --rules 获取所有内置规则列表; -
npx oxlint@latest --help 获取所有配置说明。
Usage: oxlint [-A=NAME | -D=NAME]... [--fix] [PATH]... Allowing / Denying Multiple Lints For example `-D correctness -A no-debugger` or `-A all -D no-debugger`. The default category is "-D correctness". Use "--rules" for rule names. Use "--help --help" for rule categories. -A, --allow=NAME Allow the rule or category (suppress the lint) -D, --deny=NAME Deny the rule or category (emit an error) Enable Plugins --import-plugin Enable the experimental import plugin and detect ESM problems --jest-plugin Enable the Jest plugin and detect test problems --jsx-a11y-plugin Enable the JSX-a11y plugin and detect accessibility problems Fix Problems --fix Fix as many issues as possible. Only unfixed issues are reported in the output Ignore Files --ignore-path=PATH Specify the file to use as your .eslintignore --ignore-pattern=PAT Specify patterns of files to ignore (in addition to those in .eslintignore) --no-ignore Disables excluding of files from .eslintignore files, --ignore-path flags and --ignore-pattern flags Handle Warnings --quiet Disable reporting on warnings, only errors are reported --deny-warnings Ensure warnings produce a non-zero exit code --max-warnings=INT Specify a warning threshold, which can be used to force exit with an error status if there are too many warning-level rule violations in your project Miscellaneous --timing Display the execution time of each lint rule [env:TIMING: not set] --rules list all the rules that are currently registered --threads=INT Number of threads to use. Set to 1 for using only 1 CPU core Codeowners --codeowners-file=PATH Path to CODEOWNERS file --codeowners=NAME Code owner names, e.g. @Boshen Available positional items: PATH Single file, single path or list of paths Available options: -h, --help Prints help information
最后
大家觉得这个工具怎么样?欢迎在评论区留言。