乐闻世界logo
搜索文章和话题

How to change where pnpm installs the global packages?

5 个月前提问
3 个月前修改
浏览次数193

3个答案

1
2
3

当您使用 pnpm 来安装全局包时,默认情况下,它会将包安装到一个特定的全局目录中。但是,如果需要更改全局包的安装位置,可以通过设置环境变量来实现。

对于 pnpm 而言,更改全局依赖包位置的方法如下:

  1. 设置环境变量:您需要设置 PNPM_HOME 环境变量,来指定全局依赖包的存储位置。同时,确保将 ${PNPM_HOME}/bin 目录添加到您的 PATH 环境变量中,以便可以从任何地方运行这些全局安装的包。

  2. 更新配置文件:如果您不想每次打开新的终端或会话都设置一次环境变量,可以选择将这些环境变量添加到您的 shell 配置文件中(如 .bashrc, .bash_profile, .zshrc 等),这样它们将自动加载。

下面是在 Unix-like 系统(如 Linux 或 macOS)上设置这些环境变量的步骤:

sh
# 设置 PNPM_HOME 环境变量来指定全局依赖包的新位置 export PNPM_HOME="/path/to/your/global/pnpm/location" # 将 PNPM_HOME/bin 添加到 PATH 环境变量中 export PATH="$PNPM_HOME/bin:$PATH" # 将这些行添加到您的 shell 配置文件中,比如 .bashrc 或 .zshrc, # 以确保每次新的终端会话都会设置这些变量。 echo 'export PNPM_HOME="/path/to/your/global/pnpm/location"' >> ~/.bashrc echo 'export PATH="$PNPM_HOME/bin:$PATH"' >> ~/.bashrc

如果您使用的是 Windows 系统,则可以在“系统属性”中的“环境变量”设置或通过命令行(例如,使用 PowerShell)来设置环境变量:

powershell
# 设置 PNPM_HOME 环境变量来指定全局依赖包的新位置 $env:PNPM_HOME="C:\path\to\your\global\pnpm\location" # 将 PNPM_HOME\bin 添加到 PATH 现有的环境变量中 $env:PATH="$env:PNPM_HOME\bin;$env:PATH" # 永久设置环境变量,您需要使用 Set-ItemProperty Set-ItemProperty -Path 'HKCU:\Environment' -Name 'PNPM_HOME' -Value 'C:\path\to\your\global\pnpm\location' [System.Environment]::SetEnvironmentVariable('PATH', "$env:PNPM_HOME\bin;$env:PATH", [System.EnvironmentVariableTarget]::User)

在设置了这些环境变量后,您在使用 pnpm install -g <package> 命令安装任何全局包时,pnpm 会将它们安装到您指定的新位置。记得替换上述命令中的 /path/to/your/global/pnpm/locationC:\path\to\your\global\pnpm\location 为您希望全局包安装的实际路径。

2024年6月29日 12:07 回复

For pnpm v6, use global-dir instead of pnpm-prefix:

shell
pnpm config set global-dir <dir>

Although <dir> can be arbitrary, to keep the original directory structure, it should be <your npm prefix>/pnpm-global.

From changelog:

The pnpm-prefix setting is removed. Use global-dir to specify a custom location for the globally installed packages.

2024年6月29日 12:07 回复

Set the pnpm-prefix config with the desired location

shell
pnpm config set pnpm-prefix <dir>
2024年6月29日 12:07 回复

你的答案