utoo
utoo (ut) 是一个快速、现代的 JavaScript 包管理器,提供与 npm 兼容的包管理功能,并具有性能优化。
utoo 是 npm 的直接替代品,性能更优。
安装
macOS / Linux
无需 Node.js,一行命令安装:
Terminal
curl -fsSL https://utoo.land/install | bash快速开始
1. 安装依赖
Terminal
ut install2. 添加包
Terminal
ut install lodash
ut install -D typescript3. 运行脚本
Terminal
ut build
ut dev4. 执行远程包
Terminal
utx create-react-app my-app性能对比
utoo 的性能优势主要体现在依赖解析、下载复用和全局包缓存复用。以下是 ant-design 项目的阶段化安装基准,poolab Linux x86_64 环境直连 https://registry.npmmirror.com,耗时越低越好:
| 场景 | utoo | Bun | pnpm | aube |
|---|---|---|---|---|
完全冷启动 (p0) | 7.84s ± 2.17s | 13.21s ± 2.36s | 39.32s ± 16.56s | 27.63s ± 6.47s |
仅 lock 冷启动 (p3) | 6.64s ± 1.64s | 8.62s ± 3.57s | 15.14s ± 0.77s | 6.42s ± 0.31s |
热缓存安装 (p4) | 1.09s ± 0.05s | 2.72s ± 0.05s | 7.89s ± 0.38s | 1.60s ± 0.07s |
p3 中 utoo 与 aube 的均值差异处于噪声范围,可视为基本持平;utoo 在 p0 和 p4 中领先更明显。不同平台、镜像源和网络拓扑会影响绝对耗时,GitHub Actions npmjs 结果和修正后的 pnpm 验证见性能基准。
命令
所有命令
| 命令 | 别名 | 描述 |
|---|---|---|
install | i | 安装项目依赖 |
uninstall | un | 卸载指定依赖 |
run | r | 运行 package.json 中定义的脚本 |
execute | x | 执行来自本地或远程 npm 包的命令 |
view | v, info, show | 查看包信息 |
list | ls | 列出依赖(类似 npm list) |
link | ln | 链接包(类似 npm link) |
deps | d | 仅生成 package-lock.json |
update | u | 删除 node_modules 并重新安装 |
rebuild | rb | 重跑所有包的脚本钩子 |
clean | c | 清理全局存储中的包缓存 |
pm-pack | pk | 创建包的 tarball |
ping | pg | 检测镜像源连通性 |
login | lg | 登录镜像源 |
logout | lo | 注销登录 |
whoami | who | 显示当前用户名 |
config | cfg | 管理配置 |
init | create | 创建 package.json 文件 |
publish | pub | 发布包到镜像源 |
completions | cmp | 生成 shell 自动补全脚本 |
* | — | 任何未识别命令会走到 ut run * |
每个命令自身的选项列在对应章节里;也可以直接 ut <command> --help 在终端查看。
全局选项
| 选项 | 描述 |
|---|---|
-h, --help | 显示帮助 |
-v, --version | 显示版本 |
特性
全局缓存
安装过的包会按 包名/版本 缓存到 ~/.cache/nm/,后续安装直接从缓存硬链接到项目,跳过下载和解压。同一版本的包在磁盘上只存储一份,跨项目共享。
~/.cache/nm/
├── lodash/4.17.21.tgz
├── react/18.3.0.tgz
└── typescript/5.6.0.tgz镜像源加速
当使用的 registry 是 cnpm 兼容镜像(如 registry.npmmirror.com)时,utoo 自动启用两项加速:semver 查询加速(服务端解析版本)和 binary mirror(原生模块下载改走 CDN)。两项在 npm 官方源上都会跳过。
从 pnpm 迁移
一行命令从 pnpm 项目迁移,自动转换 pnpm-workspace.yaml 中的工作区、overrides 和 catalog 配置:
Terminal
ut install --from pnpm详见从 pnpm 迁移。
快捷执行
你可以直接运行 package.json 脚本,无需 run:
Terminal
ut build # 等同于: ut run build
ut dev # 等同于: ut run dev
ut test # 等同于: ut run testLast updated on