#javascript #regex #grunt-usemin
#javascript #регулярное выражение #grunt-usemin
Вопрос:
У меня в моем gruntfile есть следующее:
usemin: {
html: ['<%= yeoman.dist %>/**/*.html'],
css: ['<%= yeoman.dist %>/styles/**/*.css'],
js: ['<%= yeoman.dist %>/scripts/**/*.js'],
options: {
assetsDirs: ['<%= yeoman.dist %>','<%= yeoman.dist %>/styles/**/*'],
patterns: {
js: [
[/css:["']styles/?.*/(.*.css)['"]/g, 'revved css resolves']
]
}
}
}
Который делает то, что я хочу, учитывая файл javascript со ссылкой на обновленный файл css, он заменяет вхождение. Но это только первое явление. Мне нужно, чтобы это работало глобально (отсюда и модификатор ‘/ g’. Есть какие-либо подсказки?
Входные данные представляют собой файл, который выглядит примерно так:
foo:{includes:{css:"styles/something.css"}},bar:{includes:{css:"styles/something.css"}}
В итоге я получаю (предполагая, что 0123456 — это хэш из rev):
foo:{includes:{css:"styles/0123456.something.css"}},bar:{includes:{css:"styles/something.css"}}
Чего я хочу, так это:
foo:{includes:{css:"styles/0123456.something.css"}},bar:{includes:{css:"styles/0123456.something.css"}}
Спасибо.
Ответ №1:
Мое регулярное выражение было слишком жадным, я исправил это, заменив свой шаблон на /css:"styles/?[A-Za-z]*/ ([A-Za-z0-9] .css)"}/g
, и теперь я снова в деле.
Комментарии:
1. Спасибо за это вдохновение, я забыл
/g
модификатор для моего regExpr m(