【问题标题】:trouble with npm preinstall scriptnpm 预安装脚本的问题
【发布时间】:2020-07-30 03:14:41
【问题描述】:

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

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

package.json:

{
  "name": "react-sandbox",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "preinstall": "npx only-allow pnpm"
  }
}

npm 版本 6.14.2。

有什么想法吗?

【问题讨论】:

    标签: npm pnpm


    【解决方案1】:

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

    但是运行npm install会失败。

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

    【讨论】:

    • 感谢您的回复。我证实了你所说的。我希望有更全面的保护措施,尽管我不确定这种保护措施有多重要。我会继续尝试 pnpm。
    • Yarn 的维护者试图通过 pmm 解决这个问题。希望它会合并到 NodeJS github.com/arcanis/pmm
    猜你喜欢
    • 2018-03-15
    • 2020-09-11
    • 2016-05-10
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 2016-07-25
    • 2015-02-21
    相关资源
    最近更新 更多