2016-02-26 2 views
0

Я хотел минимизировать свои файлы JavaScript с помощью наблюдателя файлов PhpStorm, но я не могу заставить его работать так, как хотелось бы.PhpStorm уменьшает количество файлов JavaScript в 1

У меня установлен uglify-js. В файле сторожа я попытался следующие:

Аргументы: $FileName$ -o $FileDir$.min.js --style compressed
Выходные пути к Refresh: $FileDir$.min.js

Проблема заключается в том, что есть только один файл быть минимизирован каждый раз, когда не все в одном.

Другая проблема заключается в том, что я хотел бы выводить исходную карту, но я не знаю, как это сделать, и где ее поставить (аргументы или пути вывода).

Я надеюсь, что кто-то может помочь мне с этими настройками.

+0

Файловые наблюдатели были разработаны в основном для выполнения некоторых внешних действий над файлом при сохранении - они вызываются для каждого измененного файла. Если вы обрабатываете несколько файлов за один раз, используя File Watcher, тогда вам нужно жестко кодировать все имена файлов (вместо этого для этого используется макрос $ FileName $), если, конечно, uglify не поддерживает маски файлов (например, '/ path/к/папке/*. js'). Если вы измените 2 файла из целевого списка, для каждого из них будет вызываться File Watcher. Поэтому даже с именами жестко закодированных файлов он будет выполняться дважды. – LazyOne

+0

Учитывая вышеизложенное, я бы предложил использовать некоторые задачи Grunt или Gulp для этого - он более подходит для таких задач. Постскриптум если вы хотите, чтобы вы действительно могли использовать такую ​​задачу grunt/gulp в File Watcher (предоставляя правильный путь и параметры там), но лучшим решением будет использовать модуль/функции grunch/gulp 'watch'. – LazyOne

+0

@ LazyOne oke well Я надеялся на более легкое решение, но я дам Grunt или Gulp еще один – SuperDJ

ответ

0

Несколько замечаний Файл Watchers:

  • обозреватели файлов были разработаны в первую очередь для выполнения некоторых внешних воздействий на файл при сохранении.
  • Файловый наблюдатель вызывается для каждого измененного файла.
  • Если вы хотите обработать несколько файлов за один раз (например: слить 2+ файлов в 1) с помощью File Watcher, вам необходимо жестко закодировать все участвующие файлы (в отличие от использования текущего макроса файла $FileName$), если только , конечно, uglify поддерживает маски файлов (например, /path/to/folder/*.js).
  • Если вы изменяете 2 файла из целевого списка, для каждого из них будет вызываться File Watcher, поэтому даже с именами жестко закодированных файлов он будет выполняться дважды (эта же работа выполняется дважды).

Учитывая выше я предлагаю использовать Grunt или задачу глотка для этого вместо - они более пригодны для таких требований.

P.S. Если вы хотите, чтобы вы могли использовать такую ​​задачу grunt/gulp внутри File Watcher (так же, как вызвать ее в терминале/консоли вручную), но из-за точки № 3 выше лучшего решения будет использовать модуль/функциональность Grunt's/Gulp's watch, если вы требуется автоматическое выполнение задачи.

Смежные вопросы