Release:https://github.com/pnpm/pnpm/releases/tag/v7.0.0

pnpm scripts 参数传递改变

// package.json
{
	"scripts": {
		"build": "tsc",
    // v6
		"dev": "pnpm build -- --watch"
    // v7
    "dev": "pnpm build --watch"
	}
}

setup 注册全局 bin

pnpm install -g pkg 不再默认注册到 bin(环境变量)中。跑一下 pnpm setup 即可,pnpm 会自动把环境变量和目录追加到 ~/.zshrc 的尾部。

export PNPM_HOME="/Users/username/Library/pnpm"
export PATH="$PNPM_HOME:$PATH"

pnpm init

pnpm init -y 变成 pnpm init -- -y

monorepo 不能在 submodule (workspace) 里 init

monorepo 场景下,比如创建一个 packages/app 项目,此时 package/app 里面是空的,需要先把 package.json 创建出来,所以我们需要用 pnpm init -y ,现在无论如何都不能被 pnpm init 出来:pnpm init -- -y 也无法生效,必须使用 npm init -y ,以后忘掉 pnpm init 即可。

pnpm 限制

package.json 里限制一下 pnpm 版本,限制 v6 用户

// package.json
{
	"engines": {
		"node": ">=14",
		"pnpm": ">=7.0.0"
	},
	"packageManager": "[email protected]"
}

其他关注点

不支持 Node.js 12

pnpm -r exec|run|add 递归执行命令时,默认不执行根目录项目的命令(例如 monorepo 内不会执行根目录)

filter 操作使用 globs 语法