覆盖NPM项目的`npm install`脚本

Ale*_*lls 9 node.js npm

我有一个NPM项目,npm install运行时,我想运行一个自定义脚本.

我尝试在package.json中使用它:

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "install": "./scripts/install.sh",   // <<<<
 },
Run Code Online (Sandbox Code Playgroud)

但这实际上只是导致无限循环.我正在寻找这个的原因是因为有些工具可以简单地调用npm install,所以我无法控制它们运行的​​内容.否则,如果我有控制权,我会打电话给./scripts/install.sh自己.

请注意,这可能不是最好的主意,只是好奇,如果可能的话.

请注意我的安装脚本如下所示:

#!/usr/bin/env bash

export FOO="bar";
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true";

npm install
Run Code Online (Sandbox Code Playgroud)

Jay*_*Jay 10

用于preinstall之前运行代码npm install.不要试图以npm install这种方式覆盖你最终会有无限循环的调用npm install.

您还可以使用config属性设置环境变量package.json.有关详细信息,请参阅文档

  • 自 NPM@7 以来,这不再是有效的答案。`preinstall` 和 `postinstall` 发生在 `install` 之后。 (7认同)
  • 对于那些找到这个答案的人来说,它是“预安装” - https://docs.npmjs.com/misc/scripts (2认同)