有哪些包管理器可以替代 pnpm?

What are some package manager alternatives to pnpm?

我最近开始使用 pnpm 作为我的节点模块的包管理器。此下载只允许一个版本的包在磁盘上只保存一次。这节省了我的硬盘驱动器 space,只需下载上述下载在全球范围内尚不存在的软件包。我想知道是否有任何其他可行的选择可以帮助不必为每个新项目 运行 'npm install'。提前致谢。

你可以通过 Facebook 试试 Yarn:https://yarnpkg.com/en/

来自他们的网站:

Yarn caches every package it downloads so it never needs to download it again. It also parallelizes operations to maximize resource utilization so install times are faster than ever.

但是,您仍然需要为每个包裹 运行 yarn install。我不认为在不同安装之间 "share" 包真的很理想。如果您必须对包文件进行一次性更改怎么办?那会影响你所有的项目。

您到底想 avoid/do 与您的包管理器做什么? Yarn 非常易于使用,并基于 package.json.

构建所有依赖关系

每次创建新项目时,npm install 必须是 运行,因为它会构建将用于 node_modules 的节点模块。无论您使用 Yarn 还是 pnpm,您仍然必须执行 yarn add 等同的操作

对于管理许多依赖项,yarn 非常好,因为您可以 yarn add [insert package here]yarn start

pnpm 中有一个新的 beta 命令,允许同时在多个项目中进行安装。它被称为pnpm recursive install

运行 pnpm help recursive 查看文档。从 pnpm@1.25 开始,它打印:

pnpm recursive [concurrency] install

Experimental! Concurrently runs installation in all subdirectories with a package.json (excluding node_modules). Options: same as for pnpm install


pnpm recursive [concurrency] update

Experimental! Concurrently runs update in all subdirectories with a package.json (excluding node_modules).
Options: same as for pnpm update

据我所知,pnpm 是目前唯一的 Node.js 具有此功能的包管理器。


或者,您可以使用一些 monorepo 管理工具,例如 lerna。它将 运行 每个项目中的包管理器为您服务。不过,它会比 pnpm recursive 慢很多。