grunt动态配置设置文件

时间:2016-06-01 16:54:49

标签: javascript gruntjs

我有两个加载的文件,如下所示。我想在properties.js中按名称动态加载设置文件。我想替换<%= settings [“build.target.environment”]%>使用来自环境构建选项的值。每当我尝试替换值时,我会在grunt中获得编译错误。基本上,无法加载任务,因为没有正确加载任务,所以找不到X任务。我有一个名为init的别名,它按顺序运行这两个项目。如何将构建选项放入属性文件中,以便我可以动态加载我想要加载的配置。或者还有其他选择吗?看起来我的构建选项在这些文件加载​​时不会被选中。

请忍受我和任何对咕噜声的愚昧无知,对咕噜声相对较新。

properties.js:

module.exports = {
  settings: 'config/build.properties',
  instance: 'config/environment.<%= settings["build.target.environment"] %>.properties'
}

buildoptions.js:

module.exports = function(grunt) {

  grunt.registerTask('buildoptions', 'set build version and repo branch', function() {
    var build = grunt.option("build");
    var branch = grunt.option("branch") || '';
    var environment = grunt.option("environment");

    grunt.config('build', build);
    grunt.config('branch', branch);
    grunt.config('environment', environment)
  });

};

aliases.json:

"init": [  
    "buildoptions",
    "properties"
  ]

1 个答案:

答案 0 :(得分:0)

您不需要设置局部变量来访问模板字符串中的grunt.option值,而是直接引用它:

module.exports = {
  settings: 'config/build.properties',
  instance: "config/environment.<%= grunt.option('environment') %>.properties"
}