项目中如何强制使用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"
  }
}

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

相关推荐
全栈陈序员12 小时前
说说你对 Vue 的理解
前端·javascript·vue.js·学习·前端框架
全栈技术负责人12 小时前
Ling框架:针对AIGC工作流中JSON数据流式处理的解决方案
前端·ai
自由与自然12 小时前
实现类似van-dialog自定义弹框
前端·javascript·html
KLW7512 小时前
vue3中操作样式的变化
前端·javascript·vue.js
天天讯通12 小时前
BI 报表:呼叫中心的伪刚需
大数据·前端·数据库
自由与自然13 小时前
栅格布局常用用法
开发语言·前端·javascript
Violet_YSWY13 小时前
讲一下ruoyi-vue3的前端项目目录结构
前端·javascript·vue.js
这是你的玩具车吗13 小时前
转型成为AI研发工程师之路
前端·ai编程
Drift_Dream13 小时前
在Vue样式中使用JavaScript 变量(CSS 变量注入)
前端
C_心欲无痕13 小时前
vue3 - toRaw获取响应式对象(如由reactive创建的)的原始对象
前端·javascript·vue.js