Pour accéder à une variable dans les scripts npm, vous feriez quelque chose comme ça dans votre package.json
:
"scripts": {
"preinstall": "echo ${npm_package_name}"
}
Le problème est que cela ne fonctionne que sous Unix, pas Windows, où vous devez utiliser %npm_package_name%
.
Existe-t-il un moyen de faire ce système d'exploitation indépendamment? Ce serait bien si npm pouvait faire une telle expansion de variable, avant d'appeler la commande.
Pour le rendre multiplateforme, utilisez cross-var
:
"scripts": {
"preinstall": "cross-var echo ${npm_package_name}"
}
Il n'y a aucun moyen connu de le faire qui soit indépendant du système d'exploitation.
Une bonne solution consiste à exécuter la commande dans un script de nœud:
Tout d'abord, modifiez la commande preinstall
pour exécuter un script de noeud:
"scripts": {
"preinstall": "node nameEcho.js"
}
Ensuite, vous définissez la commande dans le fichier nameEcho.js:
// require the package.json file
var pjson = require('./package.json');
// echo the package's name
console.log(pjson.name);