2017-09-14 14 views
0

Imaginez que j'ai une variable d'environnementComment définir les variables d'environnement hôte dans les scripts de NPM (de package.json)

export NODE_ENV=production 

quand je fais

echo $NODE_ENV //--> shows production which is correct 

Problème:

Inside my package.json

scripts: { 
... 
"build": "export REACT_APP_NODE_ENV=${NODE_ENV:-development}; 
      npm run build-css && react-scripts build", 
... 
} 

Maintenant, quand je le fais npm run build REACT_APP_NODE_ENV est en train de se développer ... mais il aurait dû être en production car NODE_ENV est présent.

Si je

scripts: { 
... 
"build": "export REACT_APP_NODE_ENV=production; 
    npm run build-css && react-scripts build", 
... 
} 

Il fonctionne correctement comme prévu à savoir tous les scripts accèdent au REACT_APP_NODE_ENV avec valeur attendue qui est la production.

Objectif

Je veux éviter hardcoding dans mon package.json

Comment puis-je mettre REACT_APP_NODE_ENV avec la valeur ${NODE_ENV}

"build": "export REACT_APP_NODE_ENV=${NODE_ENV}; 
    npm run build-css && react-scripts build", 

Répondre

1

Vous voulez probablement faire en sorte que ce soit multiplateforme qui vous évitera des maux de tête plus tard.

Ce problème a déjà été résolu dans le package npm cross-var.

Ensuite, en supposant que vous avez déjà exporté NODE_ENV, vous utilisez cette façon:

"scripts": { 
    "build": "REACT_APP_NODE_ENV=${NODE_ENV}" 
} 
+0

Désolé, je ne suis pas à la recherche d'une solution dans OS. Je dis que cela ne fonctionne pas '" build ":" export REACT_APP_NODE_ENV = $ {NODE_ENV}; npm exécutez build-css && reac-scripts build ",' NODE_ENV n'est pas défini sur REACT_APP_NODE_ENV – Cyril