Jim*_*Jim 2 bash npm npm-scripts
我有一个nodejs javascript项目,但我想在本地设置一堆环境变量。创建了一个仅导出一些变量的bash文件:
#!/usr/bin/env bash
export waka=flaka
export fat=booty
Run Code Online (Sandbox Code Playgroud)
当我使用点作为源代码并从命令行运行文件时,它工作正常:
. ./env.sh
Run Code Online (Sandbox Code Playgroud)
我可以看到变量已设置
echo $waka # prints "flaka"
Run Code Online (Sandbox Code Playgroud)
但是然后我尝试通过将此命令添加到我的package.json中,使其成为npm脚本。
scripts: {
"set-env": ". ./env.sh",
...
}
Run Code Online (Sandbox Code Playgroud)
然后运行它:
npm run set-env
Run Code Online (Sandbox Code Playgroud)
脚本已运行,但未保存环境变量:
echo $waka # prints undefined (assuming you didn't already run it from command line)
Run Code Online (Sandbox Code Playgroud)
因此,我想知道为什么它不将环境变量保存为npm脚本,以及是否有可能以某种方式从npm脚本运行bash脚本,以便将环境变量保存到命令提示符的其余部分。会议。谢谢!
npm不是shell命令;它在一个单独的进程中运行,该进程派生另一个 shell以运行所指定的命令set-env。env.sh执行完后,该外壳程序立即退出,此时更改消失(然后npm退出)。
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |