![](/img/trans.png)
[英]Is it possible to use environment variables from .env package in the npm scripts
[英]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似乎也没有为本地环境提供任何加载机制。
我目前能想到的唯一解决方案是:
将所有需要本地env的脚本移动到它们自己的bash文件中,并在每个脚本中加载.env文件。
在需要从.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.