Yeoman + Grunt Отключить Uglify

Задний план:

Я работаю над расширением для хрома. Я использовал генератор yeoman. Оно работало завораживающе. После того, как я развернул расширение, мне нужно было отладить несколько проблем.

Проблема:

Код искажен. Я не могу установить точки останова. Я с трудом могу это прочитать. Он также оптимизирован. Это также затрудняет чтение. Я хотел бы сказать Grunt, чтобы он не искажал код.

Попытки решения:

  1. Я попытался закомментировать задачу uglify в файле Grunt. Если я это сделаю, не только uglify не будет выполнен, но и большинство скриптов не смогут скопировать в каталог «dist».
  2. Я могу развернуть приложение из каталога «приложение». Если я это сделаю, мой код, написанный человеком, будет загружен, а не значения «dist». Пока это работает, я хочу узнать больше о внутренней работе Grunt. Кажется вероятным, что существует какой-то механизм, с помощью которого можно отключить иглифирование при сохранении копирования.

person Virmundi    schedule 16.02.2015    source источник


Ответы (1)


Это задача usemin, которая предоставляет цели для задачи uglify. Когда вы комментируете задачу uglify, usemin не может завершить ее выполнение (по умолчанию concat и uglify), а сценарии никогда не копируются.

Таким образом, вы должны настроить поток в параметрах useminPrepare. Так:

[...]
useminPrepare: {
    options: {
        stripBanners: true,
        dest: '<%= config.dist %>',
        flow: {
            steps: {
                js: ['concat'], css: ['concat', 'cssmin']
            },
            post: {}
        }
    },
[...]

Таким образом, вы можете удалить задачу uglify из последовательности сборки (вы должны это сделать, так как она будет жаловаться, что у нее нет целей и произойдет сбой).

Документация здесь: https://github.com/yeoman/grunt-usemin#flow

person Nelson Antunes    schedule 18.02.2015
comment
Когда я это делаю, код не искажается. Так что мы идем в правильном направлении. Проблема возникает из-за того, что некоторые скрипты объединяются в фоновый режим. Мне нужны отдельные сценарии. Есть ли способ сделать это? Если я оставлю конфигурацию по умолчанию, скрипты выживут, но будут уродливыми. - person Virmundi; 18.02.2015
comment
Вы также можете попытаться удалить шаг «concat», но это помешает предложению задачи usemin. Для этого просто удалите блоки ‹!-- build:js(.) XXX --› из ваших файлов и обязательно скопируйте скрипты в процессе сборки. Но, вероятно, вам лучше выполнять отладку в режиме разработки, а не развертывать расширение. В chrome://extensions/ вы можете включить «Режим разработчика» и «Загрузить распакованное расширение...». - person Nelson Antunes; 18.02.2015