npm 错误代码 EUNSUPPORTEDPROTOCOL npm 错误 不支持的 URL 类型“工作空间:”:工作空间:*

问题描述 投票:0回答:1

出现错误是因为项目设置为使用

pnpm
。但我想要的是向用户显示合适的消息,让他们知道他们必须使用
pnpm
而不是
npm
yarn

我尝试添加预安装脚本,但问题是命令

npm i
在顶部运行工作区命令并显示此消息:

*npm error code EUNSUPPORTEDPROTOCOL

npm error Unsupported URL Type "workspace:": workspace:*

npm error A complete log of this run can be found in: /home/lucifer/.npm/_logs/2024-10-20T16_20_28_424Z-debug-0.log*

我可以通过什么方式向用户显示自定义消息?

javascript node.js npm pnpm pnpm-workspace
1个回答
0
投票

您可能必须利用

npm
的生命周期脚本来检查
npm
yarn
是否正在使用并显示错误消息。

请花一些时间阅读以下内容:

  1. 打开您的
    package.json
  2. 添加一个
    preinstall
    脚本来检查是否正在使用
    pnpm
{
  "scripts": {
    "preinstall": "node check-pnpm.js"
  }
}
  1. 在根目录下创建
    check-pnpm.js
const isPnpm = process.env.npm_config_user_agent && process.env.npm_config_user_agent.includes('pnpm');

if (!isPnpm) {
  console.error('\x1b[31m%s\x1b[0m', 'ERROR: This project uses pnpm as the package manager. Please use pnpm instead of npm or yarn.');
  process.exit(1); // Exit with failure
}
  • 如果您运行
    npm install
    yarn install
    ,脚本将停止安装过程并显示自定义错误消息。
  • 如果您运行
    pnpm install
    ,它将照常进行,没有任何问题。
© www.soinside.com 2019 - 2024. All rights reserved.