如何从导出环境变量的 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)
要影响全局,你应该将变量保存在.bashrc
和source .bashrc
这样的文件中才能生效。
我有一个 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)
要影响全局,你应该将变量保存在.bashrc
和source .bashrc
这样的文件中才能生效。