. 使用 packageManager 字段(推荐)
在项目的 package.json 中添加 packageManager 字段(官方规范):
perl
{
"packageManager": "pnpm@9.15.7"
}
2. 添加 preinstall 脚本(强制拦截)
在 package.json 的 scripts 中加入一个 preinstall 脚本,检测当前是否为 pnpm:
json
{
"scripts": {
"preinstall": "npx only-allow pnpm"
}
}
only-allow 是一个轻量工具,会阻止使用 npm/yarn 安装依赖
- 当有人运行
npm install或yarn时,会直接报错并退出。 - 需要确保
only-allow本身不需要被安装(它由npx临时调用)。
3. 文档说明 + .npmrc(辅助)
-
在 README 中明确说明:"本项目使用 pnpm,请先安装 pnpm 并使用
pnpm install安装依赖"。 -
可选:在项目根目录添加
.npmrc文件,设置:禁用 npm 自动安装 peerDependencies(pnpm 默认行为)
并提醒用户不要用 npm
虽然不能强制阻止,但可配合其他方式增强提示。
总结(推荐组合)
json
// package.json
{
"packageManager": "pnpm@9.15.7",
"scripts": {
"preinstall": "npx only-allow pnpm"
}
}
这样既符合现代规范,又能强制拦截错误的安装方式,适合团队协作项目。