Как добавить разделитель в Параметры 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 () из массива возвращает последний элемент массива, который должен быть расширением.