¿Existe alguna opción npm para deshabilitar el script postinstall mientras se instala el paquete? ¿O para reescribir cualquier campo de package.json?
¿Existe alguna opción npm para deshabilitar el script postinstall mientras se instala el paquete? ¿O para reescribir cualquier campo de package.json?
Respuestas:
No es posible deshabilitar solo postinstallscripts. Sin embargo, puede deshabilitar todos los scripts usando:
$ npm install --ignore-scripts
Como delbertooo mencionó en los comentarios, esto también deshabilita los scripts de las dependencias.
--ignore-scriptsdeshabilita TODOS los scripts, incluso desde sus dependencias. Si sus dependencias necesitan ejecutar scripts para, por ejemplo, instalar algunos archivos binarios, pueden romperse / estar incompletos.
--ignore-scriptsla opción de configuración asociada (que configuré globalmente) también significará que npm run startsilenciosamente no hará nada e informará el éxito. Asombro.
También puede habilitar la configuración en el archivo de configuración npm.
npm config set ignore-scripts true
Nota: Esto deshabilitará los scripts para todos los paquetes de NPM.
Para hacer esto para su propia biblioteca, le recomiendo algo simple 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
luego realice su instalación de npm con:
your_pkg_skip_postinstall="yes" npm install
Quería deshabilitar el script postinstall para mi proyecto, pero quería que todos los scripts de las dependencias de mi proyecto se ejecutaran cuando lo haga npm install. Esto es lo que terminé haciendo.
./scripts/skip.js if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
ahora solo configure la variable de entorno SKIP_BUILD = 1 para evitar que su paquete se compile y sus dependencias se compilen bien
SKIP_BUILD=1 npm install