繁体   English   中英

加载本地环境变量以用于NPM脚本

[英]Load Local Environmental Variables For Use In NPM Scripts

我有一个NPM脚本,如下所示:

"start": "server start --host $DEV_HOST"

还有许多其他脚本也引用$DEV_HOST

当前$DEV_HOST已导出到我的~/.bashrc ,但是我想找到一种在项目中本地定义它的方法,例如在.env文件中。

我想知道npm是否提供了一个preall钩子,该钩子将允许调用一个可以在本地envs中加载的简单bash文件,但是不存在这样的钩子。

NPM似乎也没有为本地环境提供任何加载机制。

我目前能想到的唯一解决方案是:

  1. 将所有需要本地env的脚本移动到它们自己的bash文件中,并在每个脚本中加载.env文件。

  2. 在需要从.env文件加载到envs中的需要本地env的每个脚本之前,调用一个单独的脚本。

两者看起来都不必要地麻烦,并且扩展性不好。

有什么方法可以加载在项目本地文件中定义的环境,以便可以在NPM脚本中使用它们?

注意: 我不是在问如何将env加载到应用程序中。 我在问如何使nv脚本可以使用env。 这两件事完全不同。 Dot-env将envs添加到当前进程。 即使您创建了使用dot-env加载某些env的节点脚本,这些env也不会通过$变量提供,因为它们没有加载到环境中。 它们只能通过process.env在同一进程中使用。

您只需在NPM脚本中回显一个环境变量即可。

例如,在项目根目录的命令行上运行以下命令:

export SOME_ENV=blalala

然后可以在package.json像这样使用它:

"scrips:" {
  "print-env": "echo $SOME_ENV"
}

blalala输出到控制台。

如果要在脚本中可用的.env定义环境变量,请使用类似以下内容的内容: https : .env

npm i better-npm-run

创建您的.env文件,然后完全如上所示使用变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM