如何在.env文件中使用nodemon?

时间:2012-05-12 01:02:52

标签: javascript web-services node.js environment-variables development-environment

我正在使用.env文件来保存服务器的环境变量。如果我使用foreman start运行服务器,这是有效的。但它不适用于nodemon。

我想使用nodemon,因为它会在您修改服务器时自动重启。如何让nodemon使用.env文件?

10 个答案:

答案 0 :(得分:32)

我有一个生产 Procfile:

web: node web.js

所以我创建了一个Procfile_dev文件:

web: nodemon web.js

当我在开发环境中时,我运行:

$ foreman start -f Procfile_dev

它的作用就像一个魅力,不会影响生产。

答案 1 :(得分:16)

您可以通过以下命令使nodemon直接使用.env

$: env $(cat .env) nodemon app.js

请注意,如果对.env进行更改,则必须重新启动它。如果.env文件中有任何空格,则不会喜欢它。

答案 2 :(得分:7)

将本地配置变量放在.env文件中,并使用以下命令运行foreman和nodemon

$ foreman run nodemon web.js

答案 3 :(得分:7)

使用最新版本的Node(从io.js 1.6开始),您可以将-r标志传递给它,以便在启动时需要一个模块。这样,您就可以使用nodemon' s .env

直接加载--exec
nodemon --exec 'node -r dotenv/config'

这需要安装npm包dotenv

答案 4 :(得分:2)

线程死灵!

使用grunt-env从heroku配置中加载环境变量。

答案 5 :(得分:1)

如果您想在 nodemon 中运行 Typescript 并且需要一个带有 .env特定 dotenv 文件,那么您可以执行以下操作:

package.json 脚本中:

"dev": "nodemon -r dotenv/config src/myApp.ts dotenv_config_path=/path/to/your/env/file",

nodemon.json 中的一行告诉 nodemon 在遇到 Typescript 扩展时使用 ts-node

"execMap": {"ts": "node -r ts-node/register"},

这对于将开发 .env 文件说 .env.development.local 用于本地开发工作并将主 .env 文件用于实时生产变量非常有用。

答案 6 :(得分:0)

Heroku Procfile

更改:web:节点app.js到web:nodemon app.js

答案 7 :(得分:0)

分三步

  1. 在根文件夹> .env上创建文件
# .env ======
PORT=5000
WHO_AM_I="Who Knows"
  1. 安装dotenv
  2. 运行以下命令
"dev": "nodemon -r dotenv/config src/app.js"
  

您可以使用> process.env.varible_name

访问定义的变量

答案 8 :(得分:0)

要将dotenv软件包和任何声明的.env var加载到环境中,可以执行以下操作:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\sn.exe" -d VS_KEY_XXXXXXXXXXXXXXXXX
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\sn.exe" -i "C:\Documents\Signing\mycert.pfx" VS_KEY_XXXXXXXXXXXXXXXXX

答案 9 :(得分:0)

到目前为止,这对我来说效果很好

nodemon  -w . -w .env index.js

工作原理:
-w。”告诉nodemon观看当前目录中的文件
-w .env ”告诉nodemon观看.env文件
index.js ”只是发生更改时可以运行的文件(可以是任何内容)