Para acceder a una variable de entorno en los scripts npm, haría algo como esto en su package.json
:
"scripts": { "preinstall": "echo ${npm_package_name}" }
El problema es que solo funciona en Unix, no en Windows, donde tiene que usar %npm_package_name%
.
¿Hay una manera de hacer este sistema operativo independiente? Será bueno si npm podría realizar una expansión de este tipo antes de invocar el comando.
Para hacerlo multiplataforma, use cross-var
:
"scripts": { "preinstall": "cross-var echo ${npm_package_name}" }
No hay forma conocida de hacer esto que sea independiente del sistema operativo.
Una buena solución es ejecutar el comando dentro de un script de nodo:
Primero, cambie el comando de preinstall
para ejecutar un script de nodo:
"scripts": { "preinstall": "node nameEcho.js" }
Luego define el comando en el archivo nameEcho.js :
// require the package.json file var pjson = require('./package.json'); // echo the package's name console.log(pjson.name);