2017-08-30 58 views
0

所以我在尋找,如果在.env文件ENV被設置到dev或督促運行要麼start:devstart:prodpackage.json,默認情況下創建一個腳本 - 如果沒有什麼是設置start:dev應該運行。檢查如果.ENV變量X在NPM腳本

我不確定如何檢查npm運行腳本中的環境變量。

我想要什麼

喜歡的東西:

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

任何想法?

回答

1

這是你正在尋找的if/elif/else: (推斷這個例子你自己的需要)

#!/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 

它可能然後使用從package.jsonscripts(例子).SH:

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

...不要忘記權限:chmod +x ./checkEnv.sh

+0

雖然硫s是一個很好的起點,我不知道你可以做到這一點,我怎麼才能打電話給start:dev或start:prod?我認爲我不能在sh腳本中調用npm腳本? sh腳本會返回什麼?要麼 ... ?? – TheWebs

+0

@TheWebs:通過將ENV變量設置爲DEV或PROD,您只需執行'npm start',它將運行.sh,它將執行您在匹配條件語句下的任何操作。只需更改'yarn start:dev' /'yarn start:prod'的'echo'即可。我希望你現在明白了:) – EMX