什么是pnpm?

pnpm简介,npm替代品的减少为您节省了磁盘空间

我最近写了一篇关于我们如何拥有巨大的node_modules文件夹,为什么这不一定是一件坏事,但却可以减少硬盘驱动器的消耗,对吗?

磁盘上保存的每个字节都可以用于库代码以外的其他用途,我在2010年购买的MacBook Pro上有512GB SSD,但2019年的某些全新计算机附带128GB SSD(摩尔定律出了问题到硬盘空间)。

特别是,一种方法是将库代码存储集中到一个中央位置,并与您从事的所有项目共享它。

这是...的主要价值主张pm,这是一个非常酷的项目,您可以在以下位置签出https://pnpm.js.org

它基本上是的替代品npm,这意味着一旦安装它,就可以调用pnpm install下载项目依赖项,所有这些都将透明地为您工作。

如果您有10个使用React的相同版本的项目,pnpm将安装一次,然后在所有其他项目中首先引用该安装。

这也意味着,与必须使用标准下载资源相比,项目初始化部分所花费的时间要少得多。npm程序。即使更快npm缓存程序包,因为pnpm硬链接到中央本地存储库,而npm从缓存中复制软件包。

您安装pnpm使用npm当然course

npm install -g pnpm

然后被pnpm替代产品,您可以使用所有npm命令:

pnpm install react
pnpm update react
pnpm uninstall react

等等。

pnpm在那些需要维护大量具有相同依赖项的项目的公司中尤其值得赞赏。

例如毛刺是其中的一家公司,因为它们托管着庞大的Node.js项目。

pnpm给他们,除了npm常用命令,一些实用程序包括pnpm recursive,用于在文件夹中的所有项目上运行相同的命令。例如,您可以通过运行初始化当前文件夹中存储的100个项目pnpm recursive install。便利。

如果您使用npx,这是运行实用程序(如create-react-app,您将获得的好处pnpm通过使用pnpx附带的命令pnpm

pnpx create-react-app my-cool-new-app

软件包安装在哪里?在macOS中,~/.pnpm-store/文件夹(其中~表示您的主文件夹)。我安装了lodash作为示例,这是结果文件夹结构:

➜  ~ tree .pnpm-store/
.pnpm-store/
└── 2
    ├── _locks
    ├── registry.npmjs.org
    │   └── lodash
    │       ├── 4.17.11
    │       │   ├── integrity.json
    │       │   ├── node_modules
    │       │   │   └── lodash
    │       │   │       ├── ...
    │       │   ├── package -> node_modules/lodash
    │       │   └── packed.tgz
    │       └── index.json
    └── store.json

关于该工具,还有很多更高级的知识要学习,但是我希望这可以帮助您入门。pnpm

您是否应该将其用于日常使用?可能不会,只是坚持npm除非您有需要该工具为您解决的问题-缺少磁盘空间就是其中之一。

免费下载我的Node.js手册


更多节点教程: