thom4parisot / nodebook

📖 Livre publié aux Éditions Eyrolles • Première édition : Node.js v10 et npm v6.
https://apprendre-nodejs.fr/v1/
Other
305 stars 73 forks source link

"Pratique Accéder aux valeurs du fichier package.json" #450

Open Drozerah opened 4 years ago

Drozerah commented 4 years ago

Ne fonctionne pas sous Windows:

{
  ...
  "config": {
    "port": "4000"
  };
  "scripts": {
    "start": "node server --port $npm_package_config_port",
  }
}

D’après ce post https://stackoverflow.com/a/39868894/9370788 + test de mon coté, ceci fonctionne:

{
  ...
  "config": {
    "port": "4000"
  };
  "scripts": {
    "start": "node server --port %npm_package_config_port%",
  }
}

Mais rend donc le script dépendant de l'OS sur lequel il est exécuté ce qui est gravissime sans autre mention :)

thom4parisot commented 4 years ago

Ah la la, c'est ma faute !

J'aurais dû utiliser le module cross-env pour garder la notation similaire, et fonctionnelle sur tous les OS.

Si tu l'installes et que tu remplaces l'exemple comme ceci, ça donne quoi ?

{
  ...
  "config": {
    "port": "4000"
  };
  "scripts": {
    "start": "cross-env node server --port $npm_package_config_port",
  }
}

Merci pour la remontée du problème :-)

Drozerah commented 4 years ago

Le module cross-env ne prend pas en charge le problème car il n'est pas conçu pour couvrir l'utilisation spécifique de variables au sein de scripts NPM - ce que stipule la doc (voir section cliquable: "Why don't you use cross-env?" ) du module cross-var qui, lui, se porte volontaire à la résolution du problème identifié, ainsi:

{
  ...
  "config": {
    "port": "4000"
  };
  "scripts": {
    "start": "cross-var node server --port $npm_package_config_port",
  }
}

permet bien de retourner la valeur du port au sein du script sous Windows.

Merci pour ton retour et surtout le livre qui m'accompagne souvent même jusqu'en terrasse café journalier durant cette phase d'immersion avec Node.js que j'affectionne sérieusement ;)

thom4parisot commented 4 years ago

Ah, merci pour cette nuance que je ne connaissais pas (le module cross-var non plus d'ailleurs) :-)

Je note, je vais clarifier ça.

Merci pour ton retour et surtout le livre qui m'accompagne souvent même jusqu'en terrasse café journalier durant cette phase d'immersion avec Node.js que j'affectionne sérieusement ;)

Génial ! Je suis à l'écoute de tes retours si des passages du livre te parlent moins et gagnerait à être plus clairs, ou plus complets vis à vis de Windows.

Drozerah commented 4 years ago

Ok ! => #451