2013-11-25 2 views
1

Как я могу указать имя выходного файла на основе имени входного файла?Как я могу указать имя выходного файла на основе имени входного файла?

Я специально пытался использовать черновую задачу (grunt-closure-tools или grunt-closure-compiler) для компиляции (Минимизировать) несколько файлов JavaScript, скажем, все сытное '/source/**/*.js' и хочет выводить их в формате $(original_file_path_without_extension).min.js

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

ответ

2

Наконец-то я понял конфигурацию. Хитрость заключается в динамическом создании объекта файлов (как описано here). Моя конфигурация для grunt-closure-tools выглядит так:

closureCompiler: { 
    options: { 
     // .. YOUR OPTIONS (ommited) 
    }, 
    minify: { 
     files: [ 
      { 
       expand: true, 
       src: ['source/**/*.js', '!source/**/*.min.js'], 
       ext: '.min.js' 
      } 
     ] 
    } 
} 
0

Closure-compiler предназначен для одновременной компиляции всего вашего javascript в один файл для минимизации запросов. Есть действительно только два варианта использования, где поддерживаются отдельные выходные файлы:

Несколько модулей

Для того чтобы сохранить ссылки на переименование, вы должны скомпилировать файлы одновременно. Способ сделать это и поддерживать отдельные файлы - это модули. См How do I split my javascript into modules using Google's Closure Compiler?

неродственные Файлы

Если ваши файлы не имеют взаимозависимости, то вы бы просто запускать хрюкать задачи несколько раз - по одному для каждого файла.

+0

Файлы несколько связаны, они содержат угловые модули для одностраничного применения. Они загружаются только в случае необходимости (в зависимости от рабочего процесса пользователя). В любом случае, спасибо за комментарии GCC. – eXavier

Смежные вопросы