Ответ 1
Выяснилось:
//Does not work
dest : ['build/index.html']
Работает как строка, но не массив:
//Works
dest : 'build/index.html'
Только что установленный последний Grunt на Ubuntu 12.04. Вот мой файл grunt:
module.exports = function(grunt){
//project configuration
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
slides : {
src : ['src/top.html', 'src/bottom.html'],
dest : ['build/index.html']
}
}
});
//enable plugins
grunt.loadNpmTasks('grunt-contrib');
grunt.registerTask('default', ['concat:slides']);
}
Это создает строчку/каталог в порядке, но дает мне вывод:
Запуск задачи "concat: slides" (concat) Предупреждение: невозможно написать Файл "build/index.html" (код ошибки: undefined). Использовать --force to продолжить.
Я попробовал запустить chmod 777 в каталоге, поскольку я думал, что это может иметь какое-то отношение к разрешениям, но это ничего не меняет.
Как я могу сделать так, чтобы Grunt напишет в build/index.html?
Выяснилось:
//Does not work
dest : ['build/index.html']
Работает как строка, но не массив:
//Works
dest : 'build/index.html'
Я изменил задачи /concat.js, чтобы принимать массивы для dest:
// Write the destination file.
// If f.dest is an array take the first element
var dest = ([].concat(f.dest))[0]
grunt.file.write(dest, src);
но позже я решил использовать форму файлов вместо src/dest:
files: { 'dest.js': ['a.js', 'b.js'] }