Статьи

Работа с LESS и Chrome DevTools

Это полное руководство по использованию LESS с Chrome DevTools . Если вы использовали Sass с Chrome DevTools , вы, скорее всего, уже знакомы с представленными здесь концепциями.

  • LESS совсем недавно добавил поддержку Source Maps, так что это новое и захватывающее!
  • Отображение DevTools означает, что вы можете просматривать стили LESS для всех ваших соответствующих CSS.
  • Отредактируйте исходные файлы LESS в DevTools и сохраните их на диск.
  • Принятие Source Map улучшается благодаря Sass, CoffeeScript, UglifyJS2 и многим другим.

Не так давно в Chrome DevTools был добавлен ряд IDE-подобных функций (и продолжает это делать), одна из которых — способность понимать соответствие между скомпилированным файлом и соответствующим исходным файлом. Это стало возможным благодаря Source Maps .

image_0-2
  • Как генерировать исходные карты из файлов LESS.
  • Отладка LESS кода через DevTools.
  • Создание кода LESS в DevTools и немедленное отслеживание изменений с помощью Workspaces и Grunt.

Все упомянутое здесь доступно в Chrome Canary .


Прежде всего, установите последнюю версию (1.5.1 на момент написания этой статьи) версии LESS через NPM (Source Maps поступили в 1.5.0 ):

1
2
3
$ npm install -g less
$ lessc -v
lessc 1.5.1 (LESS Compiler) [JavaScript]
image_1

На этом этапе вы можете запустить компилятор LESS в своем терминале с помощью команды lessc .

IMAGE_2

Создайте новый файл LESS. В демонстрационных целях оно будет кратким и простым.

1
2
3
4
@color: #4D926F;
#header {
  color: @color;
}

Чтобы превратить файл LESS в файл CSS, это простой случай запуска:

1
lessc header.less header.css
image_3

Теперь нам нужен файл карты источника. Создайте его с -source-map .

1
lessc —source-map=header.map header.less header.css

Используя приведенный выше код LESS, при выполнении этой команды создается файл карты источника со следующим содержимым:


В мире без Source Maps DevTools отображал бы стили, происходящие из скомпилированного CSS. Нумерация строк не будет полезна из-за несоответствия между скомпилированным CSS и исходным CSS. При использовании Source Maps при проверке узла DOM на странице DevTools автоматически показывает стили, происходящие из исходного файла LESS.

Просмотр веб-страницы, которая ссылается на ранее упомянутый header.css , теперь более осмыслен.

IMAGE_4

Удерживая Command ( Control в Windows), щелкните любое свойство, значение или селектор, чтобы перейти к строке кода в соответствующем исходном файле LESS на панели « Источники» .


Просмотр кода LESS в DevTools, безусловно, полезен, но интеграция рабочего процесса разработки может ускорить ваш цикл итерации. Следующий шаг — сообщить DevTools, как ресурсы веб-страницы отображаются в файлы файловой системы. Введите: рабочие пространства .

Примечание. Рабочие пространства подходят для многих проектов, а не только для тех, которые используют препроцессоры CSS.

Возможно, вы уже знакомы с панелью « Источники» с точки зрения редактирования. Общая идея заключается в том, что на боковой панели есть файловый навигатор, где каждый файл обычно представляет собой таблицу стилей, сценарий или ресурс HTML, загруженный веб-страницей.

IMAGE_6

При нажатии на ресурс отображается содержимое на главной панели. Вы можете заметить сходство с панелью « Ресурсы» , однако есть по крайней мере одно существенное отличие: панель « Источники» содержит живой редактор. Изменения, которые вы вносите в таблицы стилей, применяются к странице мгновенно, а изменения, которые вы вносите в сценарии, внедряются обратно в движок V8 и оцениваются немедленно. Это работает не только для удаленно размещенных файлов, но и для локальных с дополнительным преимуществом сохранения изменений в файле.

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

Откройте локальную веб-страницу и добавьте соответствующую папку в вашей файловой системе в рабочую область, щелкнув правой кнопкой мыши на боковой панели панели « Источники» и выбрав « Добавить папку в рабочую область» .

IMAGE_7

Разрешите DevTools доступ к только что добавленной папке.

image_8

Ваша новая добавленная папка появится на боковой панели навигации.

image_9

Щелкните правой кнопкой мыши файл в сетевой папке с ресурсами на панели « Источники» (убедитесь, что она имеет явное сопоставление с файлом в вашей файловой системе) и выберите « Сопоставить с ресурсом файловой системы» .

image_10

Первое предложение, предоставленное DevTools, является правильным. Он заметил, что файл в моей файловой системе ( /Users/.../bootstrap.css ) имеет то же имя, что и файл сетевого ресурса ( http://localhost/.../bootstrap.css ). Проверьте сопоставление, выбрав правильный ресурс.

image_11

DevTools теперь понимает соответствие между ресурсами файловой системы и сетевыми ресурсами. Когда вы нажимаете «Command» / «Control», щелкните селектор на панели « Стили» и заканчиваете на панели « Источники» , теперь вам отображается ваш фактический исходный файл LESS. Вы можете редактировать файл на панели « Источники», и эти изменения будут сохранены на диске, когда вы используете Command / Control-S .

Мы прошли весь этот путь, поэтому давайте завершим этот рабочий процесс, используя задачу наблюдения Grunt, чтобы отслеживать изменения, внесенные в файлы LESS, а затем автоматически скомпилировать наш CSS и создать соответствующий файл Source Map.

С настроенными рабочими пространствами настройте Grunt (или другой инструмент по вашему выбору) для отслеживания изменений в исходных файлах LESS и скомпилируйте новый файл CSS (с картой источника). DevTools автоматически примет это изменение и применит любые новые стили к странице.

Примечание. Чтобы использовать этот рабочий процесс, включите автоматически созданный флаг CSS на панели « Параметры» .

image_12

Вот схема автоматизированных шагов, которые будут выполнены:

  1. Вы сохраняете изменения в файл LESS через DevTools.
  2. Задача наблюдения отслеживает изменения в файлах LESS и затем запускает задачу LESS .
  3. Задача LESS компилирует новый файл CSS плюс файл карты источника.
  4. DevTools внедряет новый файл CSS на текущую страницу без обновления страницы.

Вот упрощенный Gruntfile:

Примечание. Приведенный выше фрагмент кода взят из демонстрационного репозитория .

После npm install , запуск grunt в вашем терминале должен показать выполнение задачи наблюдения.

image_13

DevTools уже имеет доступ на запись к вашей папке для разработки (через рабочие области). Command / Control-S Ваши изменения на панели « Источники», чтобы DevTools перезаписывали исходный файл LESS новым изменением, Grunt компилирует новый файл CSS, который DevTools извлекает и применяет к странице.


  • Во время разработки и отладки просмотр исходного файла (а не скомпилированного файла) почти всегда будет более полезным для вас.
  • Чтобы DevTools понимал сопоставления исходного файла, он должен быть совместим с предложением Source Map v3, которое должен реализовать инструмент компиляции.
  • Инструменты, использующие Source Maps, совершенствуются. У нас есть Sass , Compass , LESS , автоматический префикс , UglifyJS2 , CoffeeScript и многое другое. Для большинства из этих инструментов есть задачи grunt-contrib-* ( Sass , Compass , LESS , autoprefixr , UglifyJS2 , CoffeeScript ), которые прекрасно сочетаются с рабочим процессом livereload .
  • Просмотр файлов LESS будет работать из коробки с DevTools. Чтобы действительно редактировать файлы, попробуйте Workspaces, которые дают вам возможность сохранять изменения на диске.

  • Введение в исходные карты на Nettuts + .

Как то, что вы узнали? Узнайте больше о Chrome DevTools!