【发布时间】:2019-05-16 21:22:56
【问题描述】:
我有一个如下所示的 NPM 脚本:
"start": "server start --host $DEV_HOST"
还有许多其他脚本也引用了 $DEV_HOST 环境。
目前$DEV_HOST 被导出到我的~/.bashrc 中,但我想找到一种在项目本地定义它的方法,例如在.env 文件中。
我想知道 npm 是否提供了一个 preall 钩子,它允许调用一个简单的 bash 文件,该文件可以加载到本地环境中,但不存在这样的钩子。
NPM 似乎也没有为本地环境提供任何开箱即用的加载机制。
目前我能想到的唯一解决方案是:
将所有需要本地 env 的脚本移动到它们自己的 bash 文件中,并在每个脚本中加载 .env 文件。
在每个需要本地环境的脚本之前调用一个单独的脚本,该环境从 .env 文件加载到环境中。
这两种方法看起来都不必要地繁琐,并且不能很好地扩展。
有没有办法加载在项目本地文件中定义的 env 以便它们可用于 NPM 脚本?
注意:我不是在问如何将环境加载到应用程序中。我在问如何使环境对 npm 脚本可用。这两件事完全不同。 dot-env 将环境添加到当前进程。即使您创建了一个使用 dot-env 加载一些环境的节点脚本,这些环境也无法通过 $ 变量获得,因为它们没有加载到环境中。它们只能通过process.env 在同一进程中使用。
【问题讨论】:
标签: javascript npm environment-variables environment package.json