[Next.js 14] 工程切换成 pnpm

136 阅读1分钟

切换原因

因为最近Monorepo的项目管理方式比较流行,但是使用Monorepo管理的每个项目都有自己的package.json,会导致不同项目需要重复安装会造成大量冗余,而且安装时间较长。

所以选择了 pnpm,pnpm 是一款快速、高效使用磁盘空间的包管理器。本文不详细介绍 pnpm,如有需要可以访问官方网站查看详情

本文默认已经全局安装 pnpm

卸载 npm 包

rm -rf node_modules

创建.npmrc文件


# pnpm 配置
shamefully-hoist=true
auto-install-peers=true
strict-peer-dependencies=false

转换 lock 文件

image.png

pnpm import

重新安装 pnpm

pnpm install

限制包管理器为pnpm

由于 pnpm 和 npm 包管理有些许不一致的地方,为了保证安装的完整,添加 pnpm 包管理限制

"scripts": {
  "preinstall": "npx only-allow pnpm"
}