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

How do you switch between pnpm versions?

7 个月前提问
5 个月前修改
浏览次数1159

5个答案

1
2
3
4
5

在面对需要切换不同版本的 PNPM 时,可以使用一些有效的工具和策略来管理这一过程。我将简要介绍几种常用的方法来实现这一目标,并且举例说明。

1. 使用 NVM(Node Version Manager)

NVM 是一个流行的 Node.js 版本管理工具,它也可以间接帮助管理不同版本的 PNPM,因为 PNPM 的运行依赖于 Node.js 的版本。使用 NVM 可以轻松切换 Node.js 版本,从而间接切换或重新安装不同版本的 PNPM。

安装 NVM:

bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

使用 NVM 安装并使用特定版本的 Node.js:

bash
nvm install 14 nvm use 14

在该 Node.js 版本下安装 PNPM:

bash
npm install -g pnpm

2. 使用 PNPM 的自带版本管理功能

从 PNPM 6.10.0 版本开始,PNPM 支持了内置的版本管理功能,允许用户方便地切换不同版本的 PNPM。使用 pnpm env 命令可以管理不同的 Node.js 和 PNPM 环境。

列出所有可用的 PNPM 版本:

bash
pnpm env list --available

使用特定版本的 PNPM:

bash
pnpm env use --pnpm <version>

3. 使用 Volta

Volta 是另一个现代的工具,专门设计用于管理 JavaScript 命令行工具和库的版本,包括 Node.js 和包管理器如 PNPM。

安装 Volta:

bash
curl https://get.volta.sh | bash

使用 Volta 安装并使用特定版本的 PNPM:

bash
volta install pnpm@6.14.2

例子

假设我们正在一个项目中使用 PNPM 6.14.2 版本,突然需要切换到 5.18.9 版本来测试一些向下兼容性问题。我们可以使用 Volta 来实现快速切换:

bash
volta install pnpm@5.18.9

切换完成后,运行 pnpm --version 应该显示 5.18.9,表明我们已经成功切换到旧版本。

以上就是不同的方法和工具来切换和管理不同版本的 PNPM。选择哪种方法取决于个人或项目需求,以及你更习惯使用哪种工具的方式。

2024年6月29日 12:07 回复

PNPM(Performant NPM)是一个有效的包管理器,用于处理JavaScript项目中的依赖关系,它类似于npm和Yarn。在PNPM中,如果您想要在项目中切换使用不同版本的包,通常有以下几种方式:

1. 使用 pnpm add 命令指定版本

当您需要为项目添加一个特定版本的包时,可以使用 pnpm add 命令并指定版本号。例如:

sh
pnpm add lodash@4.17.15

这将会安装 lodash 包的 4.17.15 版本。

2. 修改 package.json 文件

直接在项目的 package.json 文件中指定所需的包版本,然后运行 pnpm install。例如:

json
{ "dependencies": { "lodash": "4.17.15" } }

修改完 package.json 之后,运行以下命令来安装指定版本的依赖:

sh
pnpm install

3. 使用 .npmrcpnpm-workspace.yaml 配置文件(对于工作区)

如果您在使用PNPM的工作区(monorepo),您可以在 .npmrc 或者 pnpm-workspace.yaml 文件中指定使用特定版本的包。

.npmrc 文件中,您可以添加如下配置以锁定特定版本:

plaintext
lodash=4.17.15

pnpm-workspace.yaml 文件里,可以这样指定:

yaml
packages: - 'packages/*' dependencies: lodash: 4.17.15

4. 使用 pnpm update 命令更新版本

如果您想要更新到一个包的最新版本或一个特定范围内的版本,您可以使用 pnpm update 命令。例如:

sh
# 更新到最新版本 pnpm update lodash # 更新到特定范围的版本 pnpm update lodash@^4.17.0

这会把 lodash 更新到最新的版本,或者是符合 ^4.17.0 范围的最新版本。

5. 使用版本管理工具

在维护大型项目或多个项目时,可能需要更复杂的版本管理策略。这时可以使用像 nvm(Node Version Manager) 这样的工具来管理不同项目使用的Node.js版本,因为不同的Node.js版本可能会自带或是兼容不同版本的包管理器。

以上就是在PNPM中切换不同版本包的几种常用方法。实际操作中,根据项目需求和团队的开发流程,选择最合适的方法来进行版本管理非常重要。

2024年6月29日 12:07 回复

If you have installed pnpm through Node.js corepack:

shell
corepack enable

you can just run:

shell
corepack prepare pnpm@7.13.6 --activate

Here is the doc

2024年6月29日 12:07 回复

I'm also going with node.js/corepack. I have to jump between versions 6 and 7 for different projects.

With a recent version of node.js (16.17+) it's even easier to switch between the most recent of major versions of pnpm. For the latest of version 7 you'd type:

shell
corepack prepare pnpm@latest --activate

For the latest of version 6:

shell
corepack prepare pnpm@latest-6 --activate

It's also described in the installation doc of pnpm.

2024年6月29日 12:07 回复

If you wish for a one-liner to use whichever pnpm version you want, use npx:

shell
npx pnpm@<version> <command>

For example, I have pnpm 8 installed globally but want to contribute to a project that depends on pnpm 6. This is how I do it:

shell
npx pnpm@6 install
2024年6月29日 12:07 回复

你的答案