It's not possible to disable only postinstall
scripts. However, you can disable all scripts using:
$ npm install --ignore-scripts
As delbertooo mentionned in the comments, this also disables the scripts of the dependencies.
You can also enable the settings in npm configuration file.
npm config set ignore-scripts true
Note: This will disable scripts for all NPM packages.
I wanted to disable postinstall script for my project but wanted all scripts of my project's dependencies to run when I do npm install
.
This is what I ended up doing.
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
now just set the environment variable SKIP_BUILD=1 to prevent your package from building and your dependencies will build just fine
SKIP_BUILD=1 npm install
To do this for your own library, I recommend something simple like:
#!/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
then do your npm install with:
your_pkg_skip_postinstall="yes" npm install
If you're using NPM>=7, you can also remove the postinstall
script temporarily:
npm set-script postinstall ""
npm install
Source: https://docs.npmjs.com/cli/v7/commands/npm-set-script/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With