安装 pnpm
删除 node_modules
shell
npx npkill
添加 preinstall hook
json
{
"scripts": {
"preinstall": "npx only-allow pnpm"
// ...
}
}
[可选]创建 pnpm-workspace.yaml 并写入以下内容
TIP
- 这里涉及到一个名为
monorepo
的软件开发策略
yaml
packages:
# include packages in subfolders (change as required)
- "apps/**"
# all packages in direct subdirs of packages/
- "packages/**"
# exclude packages that are inside test directories
- "!**/test/**"
将 workspaces
从 package.json
中删除
[可选]使用 pnpm add 安装依赖有警告
- 执行
pnpm add
时增加-w
选项
INFO
考虑到某些第三方会自主执行 pnpm add,此时不好控制 cli 选项,所以推荐第二种方案
- 考虑到
monorepo
,这里应该不是最佳实践
- 根目录下创建
.npmrc
文件并写入ignore-workspace-root-check=true
依据 package-lock.json 生成 pnpm-lock.yaml
shell
pnpm import
删除 package-lock.json
shell
rm -f package-lock.json
使用 pnpm
安装依赖
shell
# 别名:pnpm i
pnpm install
将 npm run xxx 替换为 pnpm xxx
json
{
"scripts": {
"test": "npm run test",
"test": "pnpm test"
}
}