Answers:
仅禁用postinstall
脚本是不可能的。但是,您可以使用以下命令禁用所有脚本:
$ npm install --ignore-scripts
正如注释中提到的delbertooo一样,这也会禁用依赖项的脚本。
--ignore-scripts
将禁用所有脚本,甚至禁用您的依赖项。如果您的依赖项需要运行脚本来例如安装一些二进制文件,则它们可能会损坏/不完整。
--ignore-scripts
或相关的config选项(我在全局范围内设置)也将意味着npm run start
无提示地执行任何操作并报告成功。惊奇。
您还可以在npm配置文件中启用设置。
npm config set ignore-scripts true
注意:这将禁用所有NPM软件包的脚本。
要针对您自己的库执行此操作,我建议您执行以下简单操作:
#!/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
我想为我的项目禁用安装后脚本,但希望在运行时运行项目依赖项的所有脚本npm install
。这就是我最终要做的。
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
现在只需设置环境变量SKIP_BUILD = 1即可阻止您的程序包构建,并且您的依赖项也将构建良好
SKIP_BUILD=1 npm install