2017-07-19 74 views
1

我有一个具有以下脚本的package.json:如何从出口环境变量NPM脚本运行bash脚本

"scripts": { 
    "config": ". ./setup.sh" 
}, 

的setup.sh文件提示的API令牌用户,

read -p "Enter API Authorization Token: " val 
export API_AUTH_TOKEN=$val 

和通过PS3菜单的环境。例如:输入1应输出DEFAULT_ENV ='http://localhost:8000'。

当我通过终端(./setup.sh)运行这个setup.sh时,它工作的很好。只有当我运行“npm run config”时,它不会实际上导出这些值,尽管它的行为就像它一样。我在这个印象之下,是关于这个脚本是以内的其他进程,所以不会影响全球环境。我如何做到这一点?

回答

3

这是因为导出只适用于子进程和自身。

您可以编辑文件,添加行看看吧:

read -p "Enter API Authorization Token: " val 
export API_AUTH_TOKEN=$val 
echo $API_AUTH_TOEKEN 

事实上,它从来没有影响到父进程(如shell窗口)

影响全球,您应该保存文件中的变量如.bashrcsource .bashrc使其生效。