gpt4 book ai didi

javascript - 加载本地环境变量以在 NPM 脚本中使用

转载 作者:行者123 更新时间:2023-12-05 07:23:09 29 4
gpt4 key购买 nike

我有一个看起来像这样的 NPM 脚本:

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

还有很多其他脚本也引用了 $DEV_HOST 环境。

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

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

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

目前我能想到的解决办法只有:

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

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

这两个看起来都不必要地麻烦,而且扩展性不好。

是否有任何方法可以加载在项目本地文件中定义的环境,以便它们可用于 NPM 脚本?

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

最佳答案

您可以简单地在 NPM 脚本中回显一个环境变量。

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

export SOME_ENV=blalala

然后在您的 package.json 中,您可以像这样使用它:

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

这会将 blalala 输出到控制台。

如果你想在 .env 中定义环境变量以便在你的脚本中可用,请使用这样的东西:https://www.npmjs.com/package/better-npm-run

npm i better-npm-run

创建您的 .env 文件,然后完全按照上面显示的方式使用变量

关于javascript - 加载本地环境变量以在 NPM 脚本中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56168665/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com