使用nodejs为不同环境构建应用程序

时间:2013-08-20 14:47:07

标签: node.js continuous-integration build-environment

历史上,在我工作的大多数大型项目中,我们都有一个构建脚本,由开发人员运行来设置他们的环境,例如设置iis,数据库迁移,模板化配置文件等。

由于每个环境都不同,我通常会为每个环境提供一组配置文件,例如dev.configqa.configrelease-candidate.config,然后当构建过程运行时,它会使用<environment>.config文件找出其设置应该是什么。通过这种方式,我的开发环境可以很好地构建,构建服务器也可以自动化地完成它的工作。

无论如何在.net中我们有配置文件,比如web.config可以模板化,在nodejs世界中有没有这个概念?因为我想要一个文件,其中包含应用程序运行所需的所有配置值,而不将它们放在应用程序代码中。

2 个答案:

答案 0 :(得分:2)

实际上,你可以非常简单地做到这一点。只需将所有配置放在.js文件中,例如

{
  mongodb: {
    connection: 'http://mongodb.com/mydb:12323/user/password',
    options: {
      keepConnection: true
    }
  },

  app: {
    deploymentKey: '1234'
  },

  // etc
}

因此,您将拥有2-3个文件,具体取决于您拥有的环境数量。

   /config/development.js
   /config/production.js
   /config/test.js
   /config/staging.js

环境类型通常由NODE_ENV变量公开。然后你有非常简单的模块,加载配置:

var util = require('util');

var env = process.env.NODE_ENV || 'development';
var config = util.format('/%s.config.js', env);

module.exports = require(__dirname + config);

查看一些真实代码here;

答案 1 :(得分:1)

这就是我创建properties模块的原因。

查看environment示例。