特性比较
特性 | pnpm | Yarn | npm | 注意事项 |
---|---|---|---|---|
[工作区[支持] | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
隔离 node_modules | :white_check_mark: | :white_check_mark: | :white_check_mark: | pnpm 中的默认设置。 |
[提升 node_modules ] | :white_check_mark: | :white_check_mark: | :white_check_mark: | npm 中的默认设置。 |
Plug'n'Play | :white_check_mark: | :white_check_mark: | ❌ | Yarn 中的默认设置。 |
[自动安装 peers] | :white_check_mark: | ❌ | :white_check_mark: | |
零安装 | ❌ | :white_check_mark: | ❌ | |
[修补依赖] | :white_check_mark: | :white_check_mark: | ❌ | |
[管理 Node.js 版本] | :white_check_mark: | ❌ | ❌ | |
[管理自身版本] | :white_check_mark: | :white_check_mark: | ❌ | |
有锁文件 | :white_check_mark: | :white_check_mark: | :white_check_mark: | pnpm-lock.yaml 、yarn.lock 、package-lock.json 。 |
[覆盖支持] | :white_check_mark: | :white_check_mark: | :white_check_mark: | 在 Yarn 中称为 "resolutions"。 |
内容寻址存储 | :white_check_mark: | :white_check_mark: | ❌ | 当 nodeLinker 设置为 pnpm 时,Yarn 会使用 CAS。 |
[动态包执行] | :white_check_mark: | :white_check_mark: | :white_check_mark: | pnpm dlx 、yarn dlx 、npx 。 |
[副作用缓存] | :white_check_mark: | ❌ | ❌ | |
[目录] | :white_check_mark: | ❌ | ❌ | |
[配置依赖] | :white_check_mark: | ❌ | ❌ | |
[JSR 注册表支持] | :white_check_mark: | :white_check_mark: | ❌ | |
[脚本运行前自动安装] | :white_check_mark: | ❌ | ❌ | 在 Yarn 中,Plug'n'Play 确保依 赖始终保持最新。 |
[钩子] | :white_check_mark: | :white_check_mark: | ❌ | |
[列出许可证] | :white_check_mark: | :white_check_mark: | ❌ | pnpm 通过 pnpm licenses list 支持它。Yarn 有一个插件可以支持它。 |
注意:为了保持比较简洁,我们仅包含可能经常使用的功能。
¥Note: To keep the comparison concise, we include only features likely to be used frequently.