我正在使用.env文件来保存服务器的环境变量。如果我使用foreman start运行服务器,这是有效的。但它不适用于nodemon。
我想使用nodemon,因为它会在您修改服务器时自动重启。如何让nodemon使用.env文件?
答案 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)
分三步
# .env ======
PORT=5000
WHO_AM_I="Who Knows"
"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 ”只是发生更改时可以运行的文件(可以是任何内容)