【问题标题】:Override `npm install` script for NPM project覆盖 NPM 项目的“npm install”脚本
【发布时间】:2018-02-19 03:02:33
【问题描述】:

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

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

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "install": "./scripts/install.sh",   // <<<<
 },

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

请注意,这可能不是最好的主意,只是好奇是否可能。

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

#!/usr/bin/env bash

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

npm install

【问题讨论】:

  • 你试过 "postinstall": "yourScript" 吗?
  • 不幸的是,修改 postinstall 不适用于我的用例,因为我需要为我的安装脚本设置一些环境变量。如果安装也使用了我的预安装脚本的环境变量,我认为预安装脚本可能会起作用?
  • 是的,很抱歉您需要预安装,是的,我认为安装时也会保留环境变量,试一试。

标签: node.js npm


【解决方案1】:

使用preinstallnpm install 之前运行代码。不要尝试以这种方式覆盖 npm install,否则会导致对 npm install 的无限循环调用。

您还可以使用package.jsonconfig 属性设置环境变量。详情见docs

【讨论】:

猜你喜欢
  • 2018-09-04
  • 2021-04-30
  • 2022-11-10
  • 2017-01-08
  • 2017-09-07
  • 2016-02-22
  • 2014-12-14
  • 1970-01-01
  • 2019-10-25
相关资源
最近更新 更多