Respostas:
Não é possível desativar apenas postinstall
scripts. No entanto, você pode desativar todos os scripts usando:
$ npm install --ignore-scripts
Como delbertooo mencionado nos comentários, isso também desabilita os scripts das dependências.
--ignore-scripts
desativa TODOS os scripts - mesmo de suas dependências. Se suas dependências precisarem executar scripts para, por exemplo, instalar alguns binários, elas podem ser interrompidas / incompletas.
--ignore-scripts
a opção de configuração associada (que eu defino globalmente) também significará que npm run start
silenciosamente nada fará e relatará sucesso. Surpreender.
Você também pode ativar as configurações no arquivo de configuração npm.
npm config set ignore-scripts true
Nota: Isso desativará os scripts para todos os pacotes NPM.
Para fazer isso em sua própria biblioteca, recomendo algo simples como:
#!/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
instale seu npm com:
your_pkg_skip_postinstall="yes" npm install
Queria desabilitar o script pós-instalação para o meu projeto, mas queria que todos os scripts das dependências do meu projeto fossem executados quando o fiz npm install
. Foi isso que acabei fazendo.
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
agora apenas defina a variável de ambiente SKIP_BUILD = 1 para impedir a criação do seu pacote e suas dependências criarão muito bem
SKIP_BUILD=1 npm install