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

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

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

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

setup.sh 文件提示用户输入 API token ,

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窗口)

要影响全局,需要将变量保存在.bashrcsource .bashrc等文件中才能生效。

关于node.js - 如何从导出环境变量的 npm 脚本运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45195589/

相关文章:

javascript - 将对象数组从 EJS 模板传递到 Javascript 函数?

linux - 递归查找所有不以注释开头的php文件

Bash:如何使用运算符参数扩展${parameter@operator}?

git - .npmignore 和 .gitignore 有什么区别?

node.js - Visual Studio Online 中的 npm 安装失败

node.js - MarkLogic node.js 客户端 API - 使用 XML 命名空间按元素值查询

node.js - Node.js 请求 : HPE_INVALID_HEADER_TOKEN

node.js - express.js 对 http 请求的错误处理

php - 如何使用 bash 脚本在 MySQL 中赋值

node.js - 如何使用 NPM fork 和修补 transient Node 模块?