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

How to run bash script from npm script that exports environment variables

我有一个 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" 时,它才 实际上 导出这些值,尽管它的行为就像它那样。我的印象是,这与此脚本是 另一个进程中的进程有关,因此不会影响全局环境。我该怎么做才能做到这一点?

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

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

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

事实上它永远不会影响父进程(比如shell window)

要影响全局,你应该将变量保存在.bashrcsource .bashrc这样的文件中才能生效。