pnpm的使用
安装
npm install -g pnpm
更新版本
pnpm -v
此命令可查看pnpm的当前版本
就像npm更新自身那样
npm install -g npm
pnpm也是通过下载自身来实现更新的
pnpm add -g pnpm
此命令为更新pnpm为最新版本
日常使用
功能 | npm | pnpm |
---|---|---|
安装一个新的包 | npm install <Module Name> npm install -g <Module Name> |
pnpm add <Module Name> 为当前项目安装 pnpm add -g <Module Name> 全局安装 |
查看已安装的包 | npm list npm list --depth=2 |
pnpm list pnpm list --depth=2 查看所安装包以及其依赖项,深度为2 |
更新某个已安装的包的版本 | npm update <Module Name> |
pnpm update <Module Name> |
卸载已安装的包 | npm uninstall <Module Name> 全局的话加上 -g 如 npm uninstall -g <Module Name> |
pnpm un <Module Name> pnpm uninstall <Module Name> pnpm rm <Module Name> pnpm remove <Module Name> 全局的话加上 -g 如 pnpm un -g <Module Name> |
运行 | npm run <命令> |
pnpm <命令> tips: pnpn没有run |
注意
npm
- 从npm 5.0.0版本开始,npm install或npm i命令默认就会将安装的包添加到package.json文件的dependencies中,所以你不再需要使用–save选项。也就是说,npm i pinia和npm i –save pinia的效果是一样的,都会将Pinia添加到你的package.json文件的dependencies中。 (uninstall也是同样的, 5.0.0之后–save是默认启用的, 无需额外的显示指定)
pnpm
对于一些全局的命令行工具的安装, 使用npm或pnpm都是通用的。 因为在安装之后的使用, 是直接使用系统中对应的命令行工具。
即使重复安装, 也不影响正常使用(版本相同的情况下), 因为如果版本不同, 其使用的优先级是按照系统的环境变量来遍历的, 有可能使用的不是想要的那个版本。(保持唯一性, 可以避免空间浪费。如果非要两边都装<完全没必要>,请保证版本一致, 或确保环境变量中自己所需版本是在更靠前的位置。)
如果你使用 pnpm 安装了一个全局命令行工具,然后又使用 npm 安装相同的工具,通常不会直接出现错误,但可能会遇到一些问题或不必要的复杂性:
- 版本冲突:如果两个包管理器安装的不是同一个版本,那么你运行的时候可能会调用到不同版本的工具,这可能会导致一些意想不到的行为或兼容性问题。
- 路径覆盖:两个包管理器可能会将全局包的二进制文件放在不同的路径中。如果两者的全局安装路径都被添加到系统的 PATH 环境变量中,那么按照 PATH 中的先后顺序,只有前面的路径中的版本会被优先调用。这可能会导致你无法使用预期版本的命令行工具。
- 磁盘空间浪费:即使安装了同一个版本,使用两个不同的工具进行全局安装也意味着你的硬盘上将存储两份相同的包,从而造成磁盘空间的浪费。
为了避免这些问题,建议:- 统一使用一个包管理器:选择 npm 或 pnpm 作为你的主要包管理器,并尽量只用它来处理全局安装。
- 检查版本号:如果你不得不同时使用两个包管理器,请确保他们安装的是同一个版本的工具。
- 清理旧版本:如果你切换到另一个包管理器,应该使用原来的包管理器卸载旧的全局包,避免占用额外的磁盘空间。
只要正确管理,使用 npm 和 pnpm 安装全局命令行工具应该不会引起重大问题。但为了简单和一致性,还是建议尽可能地坚持使用一个包管理器。
结论
基本上除了安装包和运行命令有区别
之外,其他命令都兼容 npm 的命令
。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 道远日暮时不存!