如何检测开发者使用的是 npm、yarn 还是 pnpm在做包管理器

背景: 统一前端的开发环境,node 版本和包管理器,如组内使用 npm 那么全部成员只允许用 npm, 如果用 yarn 只允许用 yarn 避免一个项目中同时出现 package-lock.json 和 yarn.lock 文件

想问是否有命令可以检测出来,(npm)yarn run 时强制退出。

之前找到了如下代码:不知道是否有直接可以用的包

const yarnCheck = () => {
  if (!/yarn\.js$/.test(process.env.npm_execpath || '')) {
    console.log(
      '\u001b[33m💡💡💡【本项目需要使用 Yarn 1.x 才能正常开发运行,请检查您的包管理器版本. \u001b[39m\n',
    )

    process.exit(1)
  }
}
阅读 5.5k
2 个回答

package.json

 "scripts": {
    "preinstall":"node hook.js",
}

hook.js

console.log('安装前钩子');
const yarnCheck = () => {
  if (!/yarn\.js$/.test(process.env.npm_execpath || '')) {
    console.log('\u001b[33m💡💡💡【本项目需要使用 Yarn 1.x 才能正常开发运行,请检查您的包管理器版本. \u001b[39m\n');

    process.exit(1);
  }
};

yarnCheck();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题