2017-08-30 70 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