我有一个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脚本,以便将环境变量保存到命令提示符会话的其余部分。谢谢!
发布于 2018-07-03 20:49:22
npm不是shell命令;它在一个单独的进程中运行,该进程分叉另一个shell,以运行set-env指定的命令。env.sh被执行,但是该外壳立即退出,此时更改就会消失(然后npm本身就会退出)。
https://stackoverflow.com/questions/51162609
复制相似问题