在nodejs模块中无法识别npm dotenv环境变量

时间:2017-06-14 21:24:26

标签: node.js npm module environment-variables

这是我的项目结构: project structure

的package.json

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon $NODE_DEBUG_OPTION server/boot.js --exec babel-node",
     "start": "nodemon server/boot.js --exec babel-node",
     "build": "babel server -d dist/server",
     "serve": "node dist/server/boot.js"
   },

主文件是 server / boot.js

import dotenv from 'dotenv';
import path from 'path';

dotenv.load({path: path.join(__dirname, '.env')});

import _ from 'underscore';
import configs from './config/index';

server / config / index.js 只是一个导入其他配置文件的桶文件:

import app from './app';
import database from './database';

export default Object.assign({}, app, database);

在每个配置文件中,我无法访问 .env 文件中定义的 process.env 对象的任何属性。

以下是供参考的配置文件之一:

export default  {
    app: {
        host: process.env.HOST || 'localhost',
        port: process.env.PORT || 9000,
    }
}

此处 process.env.HOST 未定义,但密钥出现在 .env 文件中。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

  

.env文件中定义的process.env对象。

您能否更具体地说明process.env文件?

根据https://www.npmjs.com/package/dotenv#rules,文件格式应为:

VAR1=value1
VAR2=value2

而不是

export default { 
    VAR1: 'value1', 
    VAR2: 'value2' 
}