pnpm 相关

# pnpm 相关

官网 (opens new window)

# 介绍

pnpm 代表 performant npm(高性能的npm),同 npmYarn ,都属于 Javascript 包管理安装工具
它较 npmYarn 在性能上得到很大提升,被称为快速的,节省磁盘空间的包管理工具

当使用 npm 或 Yarn 时,如果你有 100 个项目使用了某个依赖(dependency),就会有 100 份该依赖的副本保存在硬盘上,而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以:

  1. 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。 例如,如果某个包有100个文件,而它的新版本只改变了其中1个文件。那么 pnpm update 时只会向存储中心额外添加1个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。
  2. 所有文件都会存储在硬盘上的某一位置。 当软件包被安装时,包里的文件会硬链接到这一位置上对应的文件,而不会占用额外的磁盘空间。 这允许你跨项目地共享同一版本的依赖。

因此,您在磁盘上节省了大量空间,这与项目和依赖项的数量成正比,并且安装速度要快得多!

# 安装使用

可以在官网查看其他安装方式 (opens new window)

# 通过npm安装
npm install -g pnpm

# 通过下述命令查看已安装的pnpm的版本
pnpm -v

# 初始化,生成package.json文件
pnpm init

# 安装依赖
pnpm install xxx

# 运行package.json中定义的scripts脚本,启动服务即可
pnpm run xxx

# 创建项目

示例:创建一个vue3项目

通过pnpm create使用vite套件新建一个vue3的项目,直达vue官方链接 (opens new window)

# 使用pnpm create 启动套件(vite,只有存在的套件才可以)创建模板项目
pnpm create vite projectName -- --template vue
cd projectName
pnpm install
pnpm dev

通过上述操作,我们学到了pnpm项目的初始化、安装依赖、启动服务等,可以运行起来,感受一下它和npm运行速度的差异。

# 常用命令

# 设置源

查看源:
pnpm config get registry

切换源:
pnpm config set registry <淘宝源或其他源地址>

# 初始化

初始化package.json: pnpm init pnpm init -y

注意:pnpm init只能一键快速生成package.json文件,如果要一步一步填写每个属性的值生成package.json文件,则需要通过npm init生成,
如果要一键快速生成,需要增加-y参数npm init -y来生成。

# 管理依赖

安装依赖包到 dependencies:
pnpm add <pkg>

安装依赖包到devDependencies:
pnpm add -D <pkg>

安装依赖包到optionalDependencies:
pnpm add -O <pkg>

全局安装依赖包:
pnpm add -g xxx

安装项目全部依赖:
pnpm install
pnpm i

更新依赖包:
pnpm update
pnpm up

删除依赖包:
pnpm remove
pnpm rm/uninstall/un

# 查看依赖

查看本地安装的依赖:
pnpm list
pnpm ls

查看全局安装的依赖:
pnpm list --global
pnpm ls --g

检查过期的依赖:
pnpm outdated

# 运行脚本

运行自定义脚本:
pnpm run xxx pnpm xxx

运行test测试脚本:
pnpm test

启动套件创建项目:
pnpm create

运行start启动命令:
pnpm start

# 发布依赖包

pnpm publish

# 管理node环境

可实现nvm、n等node版本管理工具,安装并切换node.js版本的功能。

本地安装并使用:
pnpm env use <node版本号>

全局安装并使用:
pnpm env use --global <node版本号>