Как добавить разделитель в Параметры Concat при использовании Usemin
Я использую Grunt-usemin. Но объединенный JS не разделен должным образом на ';'. Как сказать usemin добавить разделитель только для JS-файлов, но не для CSS-файлов?
В настоящее время мои задачи usemin выглядят следующим образом:
useminPrepare: {
options: {
dest: '<%= config.dist %>'
},
html: '<%= config.app %>/index.html'
},
// Performs rewrites based on rev and the useminPrepare configuration
usemin: {
options: {
assetsDirs: ['<%= config.dist %>', '<%= config.dist %>/images']
},
concat: {
separator: ';'
},
html: ['<%= config.dist %>/{,*/}*.html'],
css: ['<%= config.dist %>/styles/{,*/}*.css']
},
другим вариантом использования будет обертывание каждого объединенного модуля в IIFE, который требует этой конфигурации, но должен применяться только к *.файлы JS:
concat: {
options: {
banner: ';(function () {',
separator: '})(); (function () {',
footer: '})();'
}
}
1 ответов
concat: {
options: {
process: function (src, filepath) {
if (filepath.split(/\./).pop() === 'js') {
return src + ';\n';
}
return src;
}
}
}
объяснение опции процесса ссылке
функция разбивает путь к файлу на массив with . (точка) как разделитель. Метод pop () из массива возвращает последний элемент массива, который должен быть расширением.