41

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

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

4

12 回答 12

34
  1. 安装dotenv npm i dotenv
  2. 在里面创建.env文件和你的变量
  3. 添加要执行的脚本

    "dev": "nodemon -r dotenv/config ./app/index.js " or
    "start": "node -r dotenv/config ./app/index.js "
    
  4. npm run dev使用或 运行应用程序npm run start

于 2019-03-12T05:50:05.670 回答
33

我有一个生产Procfile:

web: node web.js

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

web: nodemon web.js

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

$ foreman start -f Procfile_dev

它就像一个魅力,不影响生产。

于 2012-05-28T21:20:27.600 回答
25

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

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

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

于 2012-08-15T00:03:54.813 回答
11

使用最新版本的 Node(自 io.js 1.6 起),您可以将-r标志传递给它以在启动时要求模块。这使您可以.env使用 nodemon直接加载--exec

nodemon --exec 'node -r dotenv/config'

这需要dotenv安装 npm 包。

于 2016-05-10T11:09:15.100 回答
8

将本地配置变量放在 .env 文件中,并使用以下命令与 nodemon 一起运行工头

$ foreman run nodemon web.js
于 2012-09-27T13:44:59.667 回答
5

This works pretty well for me so far,

nodemon  -w . -w .env index.js

How it works:
"-w ." tells nodemon to watch the files in the current directory
"-w .env" tells nodemon to watch the .env file
"index.js" is just the file to run when changes occur (could be anything)

于 2020-05-13T00:52:48.083 回答
2

线程死灵术!

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

于 2014-01-25T22:52:26.540 回答
2

分三步

  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 访问您定义的变量

于 2019-10-31T20:32:28.070 回答
2

如果你想在其中运行 Typescriptnodemon 需要一个特定 .env的文件,dotenv那么你可以这样做:

package.json脚本中:

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

遇到 Typescript 扩展时nodemon.jsonnodemon使用的一行:ts-node

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

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

于 2021-03-29T15:13:13.343 回答
1

使用 -w 键来指定 nodemon 要额外监视的内容。

"scripts": {
    "dev": "env-cmd nodemon -w app -w *.js -w .env server.js"
}

不要忘记重新运行npm run dev

于 2020-03-12T12:22:50.193 回答
0

Heroku Procfile

更改: web: node app.js 到 web: nodemon app.js

于 2013-09-29T16:54:16.670 回答
-1

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

nodemon -r dotenv/config myapp.js
于 2020-03-14T01:14:10.983 回答