debug / local(" grunt serve")与dist / build(" grunt")的不同设置?

时间:2015-10-07 22:00:00

标签: javascript angularjs gruntjs settings release

我想定义一些application settings,但我想根据我是否在' debug'模式(例如grunt serve),或者最终编译的应用程序是否正在运行(例如grunt的输出)。就是这样:

angular.module('myApp').factory('AppSettings', function() {
  if (DebugMode()) { // ?? 
    return { apiPort: 12345 };
  } else {
    return { apiPort: 8008 };
  } 
});

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

我在我的应用中处理它的方式:

  1. 将一个环境的所有配置数据移动到一个文件:config.js,config.json,...无论您的应用程序发现什么都易于阅读。
  2. 现在修改您的配置文件,使用grunt配置值将其转换为模板,并在构建过程中使用grunt-template生成文件 - 例如:app.constant('myAppConfig', {bananaHammocks: <%= banana.hammocks %>});
  3. 最后,添加grunt-stage以根据环境切换grunt配置值:创建不同的config/secret/(env).json文件,更新模板(app.constant('myAppConfig', {bananaHammocks: <%= stg.banana.hammocks %>});),然后grunt stage:local:build或{ {1}}
  4. 我发现这是复杂性和功能之间的良好平衡(环境之间的分离,与构建选项无关的运行时代码,......)