pnpm
是一个高效的包管理工具,它通过使用硬链接和符号链接(symlinks)在多个项目中共享相同的包版本来节省空间。当你使用 pnpm
安装包时,它会将包的内容存储在一个全局的存储位置,然后在你的项目的 node_modules
目录中创建符号链接到这些全局存储的内容。
当提到全局安装的包时,pnpm
也支持这个功能,但是它的工作方式和 npm
或 yarn
有些不同。在 npm
或 yarn
中,全局安装的包通常被放置在系统的某个全局位置,并且可执行文件的链接将被放置在系统的 PATH 中。而 pnpm
为了避免全局命令污染,使用一个独特的方法:它会将全局包安装到一个全局目录中,并且只有当你明确地希望将这些包的执行文件添加到 PATH 时,才会为它们创建符号链接。
以下是有关如何使用 pnpm
全局安装包和管理全局目录的符号链接的步骤:
全局安装包
-
全局安装一个包:
shellpnpm add -g <package-name>
这将安装
<package-name>
到pnpm
的全局存储目录,并在pnpm
的全局 bin 目录中创建可执行文件的符号链接。 -
查看全局包位置: 要查看
pnpm
的全局包安装位置,可以运行:shellpnpm config get pnpmHome
这将告诉你全局存储位置和全局 bin 目录的位置。
管理全局符号链接
-
查看全局安装的包:
shellpnpm ls -g
这会列出所有在全局安装的包。
-
添加全局 bin 到 PATH: 你需要将
pnpm
全局 bin 目录添加到你的 PATH 环境变量。这允许你在命令行中直接运行全局安装的包的可执行文件。如何添加取决于你的操作系统和 shell,但通常是在.bashrc
、.zshrc
、.bash_profile
或.profile
文件中添加如下行:shellexport PATH="$PATH:$(pnpm config get pnpmHome)/bin"
然后重新加载你的 shell 配置文件,例如使用
source ~/.bashrc
命令。 -
删除全局包:
shellpnpm remove -g <package-name>
这将从全局存储中删除
<package-name>
包,并删除相应的符号链接。
通过这样的方式,pnpm
可以高效地管理全局命令和包,减少了存储用量并且使得版本管理变得更简单。