「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。
什么是pnpm?
pnpm 本质上就是一个包管理器,它主要有两个优势:
- 包安装速度极快;
- 磁盘空间利用非常高效。
为什么叫pnpm?
因为
pnpm
作者对现有的包管理工具,尤其是npm
和yarn
的性能特别失望,所以起名叫做perfomance npm
,即pnpm
(高性能npm)
pnpm安装
如果你已经安装了npm
,想要切换的话,可以直接install
npm install -g pnpm
如果没有安装npm
,但是已经有Node.js
在 Linux 或 macOS 下:
curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm
在 Windows 下(使用PowerShell):
Invoke-WebRequest 'https://get.pnpm.io/v6.16.js' -UseBasicParsing -o pnpm.js; node pnpm.js add --global pnpm; Remove-Item pnpm.js
如果连Node.js
都没有
在 Windows 下(使用PowerShell):
iwr https://get.pnpm.io/install.ps1 -useb | iex
pnpm命令的使用
pnpm install
安装项目所有依赖
pnpm install 或 pnpm i
pnpm add <pkg>
安装软件包及其依赖的任何软件包
命令 | 描述 |
---|---|
pnpm add <package> | 保存到 dependencies |
pnpm add -D <package> | 保存到 devDependencies |
pnpm add -O <package> | 保存到 optionalDependencies |
pnpm update
根据指定的范围更新软件包的最新版本
pnpm update 或者 pnpm up
pnpm remove
从 node_modules
和项目的 package.json
中移除包。
pnpm remove
pnpm rm
pnpm uninstall
pnpm un
pnpm run
运行一个在 package
的 manifest 文件中定义的脚本。
假如您有个 watch 脚本配置在package.json 中
"scripts": {
"watch": "build-command --watch"
}
可以这样使用命令运行脚本
pnpm run watch
其他
安装最新版本的 Node.js
pnpm env use --global latest
pnpm升级
如果你安装了 pnpm,以后想升级就不需要在使用其他软件包管理器,因为它可以自己升级自己
pnpm add -g pnpm
卸载pnpm
在删除 pnpm CLI 之前,先删除所有由 pnpm 安装的全局包。
列出所有全局包,运行
pnpm ls -g
。
删除全局包的两种方法
- 运行
pnpm rm -g <package>...
列出每个全局包。- 运行
pnpm root -g
找到全局目录的位置并手动删除它。
移除 pnpm CL
如果是使用 npm 安装的 pnpm,那就应该使用 npm 卸载 pnpm
npm rm -g pnpm
如果不是,可以直接使用
pnpm rm -g pnpm
pnpm 的相关配置文件
package.json文件
一个包的清单文件。 它包含包的所有元数据,包括依赖项、标题、作者等等。 这是所有主要的 Node.JS 包管理工具,包括 pnpm 的保留标准。
.npmrc文件
pnpm 从命令行、环境变量和
.npmrc
文件中获取其配置。
pnpm-workspace.yaml文件
定义了 工作空间的根目录,并能够使你从从工作空间中包含 / 排除目录 。 默认情况下,包含所有子目录。
.pnpmfile.cjs文件
pnpm 允许你通过特殊功能(钩子)直接挂钩到安装过程。 钩子可以在名为
.pnpmfile.cjs
的文件中声明。
Lockfile
pnpm生成的
pnpm-lock.yaml
文件
注意
- 注意编译环境的node版本,pnpm依赖node 14以上的版本,需要升级编译环境的node到14以上。
参考资料:
🎨【点赞】【关注】不迷路,更多前端干货等你解锁
往期推荐