Динамическое обновление полей конфигурации Grunt
У меня мало проектов в отдельных каталогах и вы хотите построить их одинаково.
Я хочу определить имя проекта из задачи (как параметр). Задачи 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' }
});
Я думал об использовании JS-функций вне его конфигурации, но не уверен, что это лучшая практика.
Ответы
Ответ 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