我有一个nodejs javascript项目,但是我想在本地设置一堆环境变量。创建了一个只导出一些变量的 bash 文件:
#!/usr/bin/env bash
export waka=flaka
export fat=booty
当我使用点从命令行获取并运行文件时,它工作正常:
. ./env.sh
我可以看到变量已经设置好
echo $waka # prints "flaka"
但后来我尝试使用这个命令并将其添加到我的 package.json 中使其成为一个 npm 脚本
scripts: {
"set-env": ". ./env.sh",
...
}
然后运行它:
npm run set-env
脚本运行但是环境变量没有保存:
echo $waka # prints undefined (assuming you didn't already run it from command line)
所以,我想知道为什么它不将环境变量保存为 npm 脚本,以及是否可以从 npm 脚本运行 bash 脚本,以便为其余部分保存环境变量命令提示符 session 。谢谢!
最佳答案
npm
不是 shell 命令;它在一个单独的进程中运行,该进程派生 另一个 shell 以运行 set-env
指定的命令。 env.sh
被执行,但随后该 shell 立即退出,此时更改消失(然后 npm
本身退出)。
关于bash - 为什么我不能通过从 Npm 脚本运行 BASH 脚本来设置 Env 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51162609/