2012-06-16 8 views
21

Я использую хрюкать для конкатенации и свести к минимуму моих JS файлов, я использую следующий конфиг для concat части:Как сопоставить каждый файл, кроме одного в grunt concat?

concat: { 
    dist: { 
    src: ['<banner:meta.banner>', 'js/*.js'], 
    dest: 'js/script.js' 
    } 
} 

Это соответствует каждому файлу в моей js папки, но мне нужно игнорировать modernizr.js, есть способ сделать это? Я предполагаю, что мне понадобится какой-то шаблон, подходящий для вуду, но я не уверен, как это сделать.

Заранее спасибо.

+0

Обратите внимание, что ' 'JS/* JS. 'is ** not ** regex, это селектор путей (или то, что они вызываются). Регулярное выражение было бы 'js \ /.* \. Js' ('. * 'Вместо' * 'и, по крайней мере, избегая точки. Я бы рассмотрел другие способы исключения файлов, он может иметь дополнительные конфигурации. – Kobi

+0

Вы правы, он использует 'minimatch' для выбора файла, который преобразует выражения в объекты JavaScript RegExp, так что это не 100% regex – javiervd

ответ

33

на основе documentation Я хотел бы попробовать:

js/!(modernizr).js 
(js/)!(modernizr).js 
{js/}!(modernizr).js 
js/!({modernizr}).js 
(js/)!({modernizr}).js 
{js/}!({modernizr}).js 
js/!{modernizr}.js 
(js/)!{modernizr}.js 
{js/}!{modernizr}.js 

Если ни один из них не будет работать, то, возможно, вы из вне удачи ...

+3

Спасибо, что первая работала нормально, я пытался« js /! Modernizr.js »до того, как нет интересно, почему это не сработало ... – javiervd

+2

@javiervd - В 'js /! modernizr.js' вы использовали отрицание только для буквы' m', поэтому оно не сработало ... –