npm 预安装脚本出现问题

dma*_*hek 4 npm pnpm

我正在尝试从 npm 跳转到 pnpm。我发现了一个有用的提示,可以在进行此处所述的更改后避免运行“npm install”: https: //pnpm.js.org/en/only-allow-pnpm

不幸的是,我的预安装生命周期覆盖没有被执行。似乎很简单,但当我运行“npm install @types/jest”之类的东西时,npm install 仍然有效

包.json:

{
  "name": "react-sandbox",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "preinstall": "npx only-allow pnpm"
  }
}
Run Code Online (Sandbox Code Playgroud)

npm 版本 6.14.2。

有任何想法吗?

Zol*_*han 6

不幸的是,该preinstall脚本仅在无参数安装期间执行。因此,当您运行 时npm add @types/jest,该脚本将不会被执行,因此 npm 不会被阻止运行。

但运行时会失败npm install

到目前为止,没有其他方法可以阻止 npm 执行。