18 个版本 (8 个重大更改)
新 0.9.5 | 2024 年 8 月 19 日 |
---|---|
0.9.4 | 2024 年 7 月 26 日 |
0.9.3 | 2024 年 6 月 25 日 |
0.8.1 | 2024 年 2 月 24 日 |
0.2.0 | 2023 年 11 月 25 日 |
#2 in #npm
每月 126 次下载
48KB
696 行
nrr
最小化、速度极快的 npm 脚本执行器。
特性
性能
nrr 初始化和解析脚本的效率比其他包管理器和脚本执行器要快得多。它通过提供尽可能大的功能覆盖范围,同时保持简单和高效,实现了这一点。
nrr
、npm
、yarn
、pnpm
、node --run
、bun
和 dum
执行一个简单的 true
脚本的基准测试
命令 | 平均值 [ms] | 最小值 [ms] | 最大值 [ms] | 相对值 |
---|---|---|---|---|
nrr |
2.2 ± 0.3 | 1.9 | 7.7 | 1.00 |
dum |
2.7 ± 0.2 | 2.4 | 5.2 | 1.22 ± 0.17 |
bun |
7.1 ± 0.3 | 6.5 | 10.3 | 3.21 ± 0.40 |
node--run |
41.6 ± 1.8 | 39.3 | 49.1 | 18.80 ± 2.35 |
npm |
261.7 ± 17.1 | 245.5 | 292.2 | 118.36 ± 15.91 |
yarn |
305.7 ± 14.6 | 295.2 | 343.9 | 138.28 ± 17.52 |
pnpm |
502.7 ± 10.7 | 489.8 | 522.9 | 227.40 ± 27.12 |
在AWS EC2 t4g.micro
实例上运行基准测试,使用命令hyperfine --shell=none --warmup=5 --output=pipe --export-markdown=benchmark.md 'npm run dev' -n 'npm' 'yarn run dev' -n 'yarn' 'pnpm run dev' -n 'pnpm' 'node --run dev' -n 'node --run' 'bun run dev' -n 'bun' 'dum run dev' -n 'dum' 'nrr dev' -n 'nrr'
包和脚本元数据显示
nrr提供了比大多数更美观的包详细信息显示和运行命令的显示,而且还把此信息打印到stderr
而不是像一些包管理器那样(错误地)打印到stdout
命令执行
除了在package.json
中运行你的脚本的常规脚本运行器功能外,nrr还可以在npm包环境中执行任意命令!你可以使用nrr exec
和nrr x
命令来执行命令,类似于npx
或pnpm exec
的工作方式(但当然更快)。
请注意,但是,nrr不能运行远程包中的命令!这个功能属于包管理器的范畴,而nrr不是。
[!TIP]
如果你在
PATH
中创建一个名为nrx
的符号链接(或者在Windows上,创建一个名为nrx.exe
的硬链接),你可以通过nrx
二进制文件执行命令,而无需使用子命令!
脚本列表
在没有参数的情况下运行nrr或运行nrr list
子命令,将尝试在当前工作目录及其祖先中查找任何包,并列出从它们提供的脚本,包括名称和命令。
工具兼容性
nrr具有兼容性功能,可以修补npm_execpath
,以便像npm-run-all2
这样的工具使用它而不是包管理器来运行子脚本。
[!WARNING]
当
npm_execpath
用于非脚本运行目的时,这可能会导致意外行为,因此如果你遇到任何错误,请提交问题。
当使用nrr运行嵌套脚本时,nrr具有专门的行为,在保持最小化和高效的同时打印额外的信息
sveltekit-project@0.0.1
$ run-s lint format:check
sveltekit-project@0.0.1 lint
$$ eslint .
拼写建议
如果您输入脚本名称错误(例如,使用 buils
而不是 build
),nrr 将会智能地建议正确的脚本在错误消息中使用来自 strsim
库的 Jaro 相似度算法。
安装
Nix
将来自 github:ryanccn/nrr
flake 的覆盖层或软件包添加到您自己的系统 flake。或者,声明式地安装软件包
$ nix profile install 'github:ryanccn/nrr#nrr'
nrr 也可在 Nixpkgs 中作为 nixpkgs#nrr
获得。
安装程序
此安装脚本适用于 Linux 和 macOS,并从 GitHub 发布版下载二进制文件,如果找不到预构建的二进制文件,则回退到 cargo install
。
$ curl --proto '=https' --tlsv1.2 -fsSL https://nrr.ryanccn.dev | sh
Cargo
nrr 支持 cargo-binstall,如果可能,将从 GitHub 发布版下载二进制文件,而不是从源代码编译 crate。
$ cargo binstall nrr
如果您确实想从源代码编译,请直接使用 Cargo 安装
$ cargo install nrr
或者,如果您想保持最新的版本,请从 Git 仓库使用 Cargo 安装
$ cargo install --git https://github.com/ryanccn/nrr.git
GitHub 发布版
您可以从 最新的 GitHub 发布版 下载为 Linux、macOS 和 Windows 预编译的二进制文件。Linux 二进制文件与 musl 静态链接;Windows 二进制文件需要 MSVC。
使用方法
$ nrr dev
$ nrr run dev
$ nrx eslint --help
$ nrr x eslint --help
$ nrr exec eslint --help
$ nrr
$ nrr list
本节提供了 nrr 命令行功能概述。有关更多选项和信息,请运行 nrr --help
!
许可协议
GPLv3
依赖关系
~13–24MB
~349K SLoC