如何从导出环境变量的npm脚本运行bash脚本

时间:2017-07-19 15:58:47

标签: node.js bash npm environment-variables npm-scripts

我有一个包含以下脚本的package.json:

"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”时,它才会实际导出这些值,尽管它的行为与此类似。我认为这与此脚本在其他进程中的进程有关,因此不会影响全局环境。我如何做到这一点?

1 个答案:

答案 0 :(得分:3)

这是因为导出仅适用于子进程及其自身。

您可以编辑文件,添加一行以查看它:

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

实际上它永远不会影响父进程(如shell窗口)

要影响全局,您应该将变量保存在.bashrcsource .bashrc等文件中,以使其生效。