Как заставить grunt-closure-compiler применять минимизацию к каждому файлу отдельно в каталоге

Есть ли способ заставить компилятор grunt-closure-compiler применять минимизацию к каждому файлу отдельно в каталоге (переопределяя оригинал) вместо создания одного файла в качестве вывода. Если я не могу переопределить оригинал, я с радостью помещу выходные файлы в отдельный выходной каталог.

https://github.com/gmarty/grunt-closure-compiler

Обычно процедура выглядит так: создается один файл:

grunt.initConfig({
  'closure-compiler': {
    frontend: {
      closurePath: '/src/to/closure-compiler',
      js: 'static/src/frontend.js',
      jsOutputFile: 'static/js/frontend.min.js',
      maxBuffer: 500,
      options: {
        compilation_level: 'ADVANCED_OPTIMIZATIONS',
        language_in: 'ECMASCRIPT5_STRICT'
      }
    }
  }
});

person Nikos    schedule 20.05.2014    source источник


Ответы (2)


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

Параметр модуля не очень хорошо документирован, но посмотрите сообщения ниже, чтобы узнать, как он работает:

person burnttoast11    schedule 28.05.2014

Как следует из другого ответа, вам нужна опция модулей. Однако компилятор grunt-closure на самом деле не поддерживает это.

Существует его вилка, поддерживающая модули. Он не использует стандартную конфигурацию файла grunt, поэтому вы не можете использовать шаблоны подстановки, чтобы заставить его взять все файлы в папке. Я обошел это, написав задачу ворчания для создания объекта модулей и передачи его в конфигурацию для задачи компилятора закрытия.

person Digital-Clouds    schedule 26.01.2016