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 可以高效地管理全局命令和包,减少了存储用量并且使得版本管理变得更简单。
