Можете ли вы помочь мне с этой проблемой?
Я пытаюсь создать функцию в Gruntfile.js
для копирования файлов шаблонов в мой проект с использованием цикла и файла .json
для "автоматизации" копированиязадание, видимо, функция выглядит великолепно, потому что Grunt запускает задание копирования в соответствии с количеством записей в файле .json
, используя grunt.log.write
в цикле Grunt показывает имена файлов .json
, но в действительности он только копируетпоследний зарегистрированный файл.
Первый мой .json
файл:
{
"config": {
"modules": [
{"name": "footer", "number": 2},
{"name": "header", "number": 1}
]
}
}
Вторая моя задача копирования с переменными цикла:
copy: {
core: {
files: [{
expand: true,
cwd: "core/<%=grunt.option('coreName')%>/<%=grunt.option('coreNumber')%>/",
src: "**",
dest: "../sass/2_deploy/core/"
}]
}
}
Намерение было получитьфайл внутри каталога версий «header / 1 /», «footer / 2 /» и перенос в каталог deploy в соответствии с приведенным выше кодом.
В-третьих, здесь есть функция, которая читает .json
файл и объявляет переменные и выполняет задачу внутри цикла:
function moveCoreFiles() {
var models = require('./variables.json');
var cores = models.config.modules;
for (core in cores) {
grunt.option('coreName', cores[core].name);
grunt.option('coreNumber', cores[core].number);
grunt.task.run('copy:core');
grunt.log.write(grunt.option("coreName"));
}
}
// ... enter code here
grunt.registerTask('moveCore', moveCoreFiles);
В этот момент, при выполнении задачи, Grunt возвращает эту информацию:
$ grunt moveCore
Running "moveCore" task
footerheader
Running "copy:core" (copy) task
Copied 1 file
Running "copy:core" (copy) task
Copied 1 file
Из описания тСпросите, кажется, что Grunt выполнил задачу один для каждой записи дважды, но на практике он только переместил последний «заголовочный» файл в каталог, мой вопрос был бы, если этот тип действия действительно возможен, или если я должен отказаться от цикла внутриGruntfile.
Большое спасибо за помощь!Привет! * * 1030