pnpm安装和使用

pnpm安装和使用

安装

通过脚本安装

windows

iwr https://get.pnpm.io/install.ps1 -useb | iex

通过npm安装

npm install -g pnpm

通过homebrew安装

brew install pnpm

兼容性

以下列表列出了以往的 pnpm 版本和对应支持的 Node.js 版本。

Node.js pnpm 4 pnpm 5 pnpm 6 pnpm 7
Node.js 10 ✔️ ✔️
Node.js 12 ✔️ ✔️ ✔️
Node.js 14 ✔️ ✔️ ✔️ ✔️
Node.js 16 ?️ ?️ ✔️ ✔️
Node.js 18 ?️ ?️ ✔️ ✔️

设置别名

powershell(windows)

通过命令找到文件位置

echo $profile

用记事本管理员身份打开

添加一行

Set-Alias -Name pn -Value pnpm

command(widnwos)

找个地方(建议c盘根目录)新建bat文件输入以下内容

@echo off
doskey pn=pnpm $*

卸载

卸载全局安装的软件包

列出所有全局包

pnpm ls

删除包

1、使用列出的每个全局包运行

pnpm rm -g <pkg>

2、运行以查找全局目录的位置并手动将其删除

pnpm root -g

删除 pnpm CLI

如果您使用独立脚本安装 pnpm,那么您应该能够通过删除 pnpm 主目录来卸载 pnpm CLI

rm -rf $PNPM_HOME

如果你使用 npm 来安装 pnpm,那么你应该使用 npm 来卸载 pnpm:

npm rm -g pnpm

删除全局内容可寻址存储

rm -rf $(pnpm store path)

如果在非主磁盘中使用了 pnpm,则必须在使用 pnpm 的每个磁盘中运行上述命令。 pnpm 为每个磁盘创建一个存储。

使用nrm切换npm镜像

nrm依赖的open这个包从9.x开始改成了 Native ESM,不再支持require的方式引入,需要手动锁定下版本,或者手动前往本地安装的nrm包修改const open = import('open');

npm install nrm open@8.4.2 -g

使用pnpm管理node版本

在使用pnpm前,我们一般使用nvm,n能模块来管理node版本,现在pnpm自带切换node版本的功能

安装并使用指定版本的nide.js

使用LTS版本

pnpm env use --global lts
pnpm env use --global argon

安装node.js v16版本

pnpm env use --global 16

安装node.js的预发行版本

pnpm env use --global nightly
pnpm env use --global rc
pnpm env use --global 16.0.0-rc.0
pnpm env use --global rc/14

安装最新版本的node.js

pnpm env use --global latest

删除指定版本的node.js

示例

pnpm env remove --global 14.0.0

选项

--global, -g

这些更改实在整个系统范围内进行的

修改环境变量

将PATH中nodejs环境变量改到pnpm的nodejs处

配置

package.js

engine

您可以指定软件所处理的 Node 和 pnpm 版本:

{
    "engines": {
        "node": ">=10",
        "pnpm": ">=3"
    }
}

在本地开发期间,pnpm 将始终失败并显示错误消息 如果其版本与字段中指定的版本不匹配。engines

除非用户设置了配置标志(参见.npmrc),否则这 字段仅供参考,仅在包 作为依赖项安装。engine-strict

dependenciesMeta

如果对于本地依赖项将其设置为 true,则包将硬链接到模块目录,而不是符号链接。

例如,在工作区中的以下内容将创建一个符号链接到目录:package.json``button``node_modules``card

{
  "name": "card",
  "dependencies": {
    "button": "workspace:1.0.0"
  }
}

workspace

pnpm 内置了对单存储库的支持(又名多包存储库, 多项目存储库或整体存储库)。您可以创建一个 工作区,用于将多个项目合并到单个存储库中。

pnpm-workspace.yaml

packages:
  - 'packages/*'

这将表示packages下的包为工作区内的包

在工作区中引用:

{
    "dependencies": {
        "foo": "workspace:*",
        "bar": "workspace:~",
        "qar": "workspace:^",
        "zoo": "workspace:^1.5.0"
    }
}
pnpm安装和使用
https://pic.imgdb.cn/item/64c7138d1ddac507cce070de.webp
作者
Firefly
发布于
2026-04-03
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Firefly
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
暂无封面

音乐

暂未播放

0:000:00
暂无歌词
暂无歌曲
分类
标签
站点统计
文章
21
分类
3
标签
13
总字数
57,102
运行时长
601
最后活动
143 天前

目录