npm:禁用包的postinstall脚本

时间:2014-05-06 22:05:00

标签: node.js npm

在安装包时是否存在禁用安装后脚本的任何npm选项?或者从package.json重写任何字段?

4 个答案:

答案 0 :(得分:211)

无法仅禁用postinstall脚本。但是,您可以使用以下命令禁用所有脚本:

$ npm install --ignore-scripts

正如delbertooo在评论中提到的,这也会禁用依赖项的脚本。

答案 1 :(得分:14)

您还可以在npm配置文件中启用设置。

npm config set ignore-scripts true

注意:这将禁用所有NPM软件包的脚本。

答案 2 :(得分:9)

我想为我的项目禁用安装后脚本,但是我想在执行npm install时运行项目依赖项的所有脚本。 这就是我最终要做的。

  1. 创建脚本./scripts/skip.js
if (process.env.SKIP_BUILD) {
    process.exit(0);
} else {
    process.exit(1);
}
  1. 在package.json文件中
 "scripts": {
  ...
  "postinstall": "node ./scripts/skip.js || npm run build",
  ...
 }

现在只需设置环境变量SKIP_BUILD = 1即可阻止您的程序包构建,并且您的依赖项将构建得很好

SKIP_BUILD=1 npm install

答案 3 :(得分:3)

要为您自己的图书馆执行此操作,我建议使用简单的内容:

#!/usr/bin/env bash

## this is your postinstall.sh script:

set -e;

if [ "$your_pkg_skip_postinstall" == "yes" ]; then
  echo "skipping your package's postinstall routine.";
  exit 0;
fi

然后用:

进行你的npm安装
your_pkg_skip_postinstall="yes" npm install