2017-08-30 4 views
0

Je cherche à créer un script dans le package.json qui fonctionne soit start:dev ou start:prod si ENV dans le fichier .env est réglé sur dev ou prod et par défaut - si rien est set start:dev devrait fonctionner.vérifier si une variable .env est x dans les scripts NPM

Je ne sais pas comment vérifier les variables d'environnement dans un script d'exécution npm.

Ce que je veux

Quelque chose comme:

if ENV === dev 
    yarn start:dev 
else if ENV === prod 
    yarn start:prod 
else 
    yarn start:dev 

Toutes les idées?

Répondre

1

C'est le if/elif/else que vous recherchez: (cet exemple extrapoler à vos propres besoins)

#!/usr/bin/env bash 
if [ "$ENV" = "DEV" ] 
then 
    echo "Development Mode" 
elif [ "$ENV" = "PROD" ] 
then 
    echo "Production Mode" 
else 
    echo "ENV : has not been set yet..." 
fi 

Il est possible d'utiliser alors le .sh du package.jsonscripts (exemple):

"scripts": {"start": "./checkEnv.sh"} 

... Ne pas oublier les autorisations: chmod +x ./checkEnv.sh

+0

Alors que thi s est un bon départ, je ne savais pas que vous pouviez faire cela, comment puis-je appeler start: dev ou start: prod? Je suppose que je ne peux pas appeler des scripts npm dans le script sh? le script sh retournerait-il quelque chose? ou ... ?? – TheWebs

+0

@TheWebs: en définissant la variable ENV sur DEV ou PROD, vous devrez juste faire 'npm start', et exécutera le .sh et il fera tout ce que vous avez sous l'instruction conditionnelle correspondante. il suffit de changer le 'echo' pour le' yarn start: dev'/'yarn start: prod'. J'espère que vous l'avez maintenant :) – EMX