2015-07-12 2 views
0

Моего Gruntfile.js что-то вроде:как использовать цель черновой

'use strict'; 

module.exports = function(grunt) { 
    grunt.initConfig({ 
     grunt.config.set('targ', grunt.option('target')); 
     cachebuster: { 
      build: { 
       options: { 
        basedir: 'WebContent', 
        formatter: function(hashes) { 
         var json = {}; 
         for (var filename in hashes) { 
          json["/" + filename] = hashes[filename]; 
         } 
         return JSON.stringify(json); 
        } 
       }, 
       src: [ 'WebContent/assets/**/*.js', 'WebContent/assets/**/*.css' ], 
       dest: 'src/main/resources/cachebusters.json' 
      } 
     } 
    }); 

// These plugins provide necessary tasks. 
grunt.loadNpmTasks('grunt-cachebuster');  

// Default task. 
grunt.registerTask('default', ['cachebuster']); 

};

Я хотел бы изменить расположение Dest на основе разработчика или развернуть аргумент командной строки ..

т.е. если аргумент командной строки является DEV затем Dest: «cachebuster.json» если аргумент командной строки является развертывание затем dest: 'src/main/resources/cachebuster.json'

Как это достичь?

ответ

2

Вы можете попробовать следующие блоки кода. По умолчанию первой цель будет выполнено (Dev в данном случае), если вы не предоставите никаких аргументов:

cachebuster: { 
    dev: { 
    options: { 
     basedir: 'WebContent', 
     formatter: function(hashes) { 
     var json = {}; 
     for (var filename in hashes) { 
      json["/" + filename] = hashes[filename]; 
     } 
     return JSON.stringify(json); 
     } 
    }, 
    src: ['WebContent/assets/**/*.js', 'WebContent/assets/**/*.css'], 
    dest: 'src/main/resources/cachebusters.json' 
    }, 
    deploy: { 
    options: { 
     basedir: 'WebContent', 
     formatter: function(hashes) { 
     var json = {}; 
     for (var filename in hashes) { 
      json["/" + filename] = hashes[filename]; 
     } 
     return JSON.stringify(json); 
     } 
    }, 
    src: ['WebContent/assets/**/*.js', 'WebContent/assets/**/*.css'], 
    dest: 'src/main/resources/cachebusters.json' 
    } 
} 

Используйте следующий блок кода, если вы хотите поделиться вариантами через цель.

cachebuster: { 
    options: { 
    basedir: 'WebContent', 
    formatter: function(hashes) { 
     var json = {}; 
     for (var filename in hashes) { 
     json["/" + filename] = hashes[filename]; 
     } 
     return JSON.stringify(json); 
    } 
    }, 
    dev: { 
    src: ['WebContent/assets/**/*.js', 'WebContent/assets/**/*.css'], 
    dest: 'src/main/resources/cachebusters.json' 
    }, 
    deploy: { 
    src: ['WebContent/assets/**/*.js', 'WebContent/assets/**/*.css'], 
    dest: 'src/main/resources/cachebusters.json' 
    } 
} 
+0

Спасибо. Второй метод, описанный вами для совместного использования опций по целям, хорошо работает. –