项目中如何强制使用pnpm

. 使用 packageManager 字段(推荐)

在项目的 package.json 中添加 packageManager 字段(官方规范):

perl 复制代码
{
  "packageManager": "pnpm@9.15.7"
}

2. 添加 preinstall 脚本(强制拦截)

package.jsonscripts 中加入一个 preinstall 脚本,检测当前是否为 pnpm:

json 复制代码
{
  "scripts": {
    "preinstall": "npx only-allow pnpm"
  }
}

only-allow 是一个轻量工具,会阻止使用 npm/yarn 安装依赖

  • 当有人运行 npm installyarn 时,会直接报错并退出。
  • 需要确保 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"
  }
}

这样既符合现代规范,又能强制拦截错误的安装方式,适合团队协作项目。

相关推荐
kyriewen1 小时前
我把今年流传的前端 AI 面试题整理了一遍——4 类场景题+回答框架(附速查表)
前端·面试·程序员
计算机魔术师2 小时前
国产多模态模型正面硬刚Opus旗舰:差距从30%缩到3%
前端
风骏时光牛马2 小时前
程序员进阶:深度思考,解锁职场成长的底层逻辑
前端
IT_陈寒2 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
爱丶不疚2 小时前
Eval: Agent 说的 Eval 是什么?从单测、TDD 到 Sentry 聊起
前端·ai编程·vibecoding
求道於盲3 小时前
python中的类型标注
前端
计算机魔术师3 小时前
从硅谷测试到全球铺开,ChatGPT广告的10亿美元秘密
前端
专业抄代码选手4 小时前
08|Fiber 上的 `useState`:状态终于属于具体组件
前端·javascript·react.js
默_笙4 小时前
😭 Vibe Coding 翻车实录:AI 编程为什么必须先写"剧本"
前端·javascript
LEE4 小时前
原来 Claude Code 最厉害的工具,一行代码都不写
前端·后端