动态更新Grunt配置字段

Vit*_*huk 10 javascript node.js gruntjs

我在单独的目录中有很少的项目,并希望以相同的方式构建它们.我想从task定义项目名称(作为param).Grunt任务将使用此项目路径作为根路径.但我有几个子文件夹,不想手动更新它我只想更新项目.有机会这样做吗?

grunt.initConfig({
  paths : {
    project : null,
    projectStylesheets : '<%= paths.project %>/stylesheets',
    // ...
  }
});   

grunt.registerTask('server', function(project) {
  // -> project = 'some_name'
  var paths = grunt.config.get('paths');
  paths.project = project;
  grunt.config.set('paths', paths);
  // -> { project: 'some_name', projectAssets: 'stylesheets' }
});
Run Code Online (Sandbox Code Playgroud)

我正在考虑在配置之外使用JS函数,但不确定这是最佳实践.

Bor*_*rov 1

尝试使用registermultitask - http://gruntjs.com/api/grunt.task#grunt.task.registermultitask

grunt.initConfig({
    projectName1 : {
        projectStylesheets: 'path_to_stylesheets1',
    },
    projectName2 : {
        projectStylesheets: 'path_to_stylesheets2',
    }
})

grunt.registerMultiTask('server', function() {
    var path = grunt.data.projectStylesheets;    
    //operations with stylesheets
});

For build use 
grunt server:projectName1
grunt server:projectName2
Run Code Online (Sandbox Code Playgroud)