什么是pnpm的包管理器替代品?

时间:2018-01-04 00:29:23

标签: node.js npm node-modules package.json package-managers

我最近开始使用pnpm作为我的节点模块的包管理器。此下载允许只将一个版本的程序包保存在磁盘上一次。这通过仅下载上述下载在全局范围内已经具有的包来节省我的硬盘空间。我想知道是否有任何其他可行的选项可以帮助你不必运行'npm install'为每个新项目。提前谢谢。

3 个答案:

答案 0 :(得分:4)

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

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

  

pnpm recursive [concurrency] install

     

实验!在所有具有package.json(不包括node_modules)的子目录中同时运行安装。                                                                                                                          选项:与pnpm install

相同            

pnpm recursive [concurrency] update

     

实验!package.json(不包括node_modules)的所有子目录中同时运行更新。
                                                                                                                         选项:与pnpm update

相同

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

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

答案 1 :(得分:1)

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

从他们的网站:

  

Yarn缓存它下载的每个软件包,因此无需再次下载。它还可以并行化操作以最大限度地利用资源,因此安装时间比以往任何时候都快。

但是,您仍然需要为每个包运行yarn install。我不认为在不同的安装之间“共享”包是非常理想的。如果您必须对包文件进行一次性更改,该怎么办?这将影响你的所有项目。

答案 2 :(得分:1)

您到底想要避免/使用您的包管理器到底是什么? Yarn非常容易使用,并基于package.json构建了所有依赖关系。

每次创建新项目时都必须运行npm install,因为它构建了将用于node_modules的节点模块。无论你使用Yarn还是pnpm,你仍然必须做相当于yarn add等等。

为了管理许多依赖关系,纱线非常好,因为你可以yarn add [insert package here]yarn start