Advertisement
  1. Web Design
  2. Terminal

Командная Строка в Веб-дизайне: Ускоряем Разработку Фронтенд Кода

Scroll to top
Read Time: 11 min
This post is part of a series called The Command Line for Web Design.
How to Install NPM and Bower
The Command Line for Web Design: Automation With Grunt

() translation by (you can also view the original English article)

Как веб-дизайнеру вам приходится работать с тремя языками: CSS, HTML и JavaScript. В этом туториале вы научитесь, как с помощью командной строки сделать ваш рабочий процесс с этими тремя языками, более быстрым и продуктивным.

Вы научитесь как использовать командную строку для:

  • Компиляции кода препроцессоров (Stylus, Sass, и LESS) в CSS
  • Автоматического добавления вендорных префиксов в CSS
  • Сжатия, объединения и чистки CSS
  • Компиляции Jade в HTML
  • Конкатенации и минификации JavaScript

Обратите внимание: в этой статье предполагается, что вы уже прошли предыдущие туториалы из этой серии. Если нет, возможно вам стоит прочитать их перед тем как двигаться дальше.

CSS Препроцессоры

Если вы до сих пор не работали с CSS препроцессорами, отложите все ваши дела в сторону и попробуйте какой-нибудь из них сею же секунду. Как только вы выберете понравившийся препроцессор, скорее всего вы больше никогда не будете писать на чистом CSS.

Три препроцессора из которых стоит выбирать - это Stylus, Sass / SCSS и LESS. На Tuts+ есть огромный набор потрясающий туториалов и курсов, которые помогут вам изучить синтаксис всех трёх препроцессоров.

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

Stylus

У большинства веб-дизайнеров есть любимой препроцессор, мой - Stylus. Он обладает минималистичным синтаксисом, который довольно быстро писать, мощным функционалом, а также на нём основаны такие библиотеки, как Jeet и Kouto-Swiss.

Вы можете прочитать подробнее о Stylus на: http://stylus-lang.com/

Установка Stylus

Для того, чтобы установить Stylus глобально, что позволит вам компилировать файлы “.styl” где угодно, запустите команду:

1
[sudo] npm install stylus -g

Компиляция Stylus

Самый простой способ скомпилировать Stylus используя однострочную команду:

1
stylus < example.styl > example.css

Эта команда скомпилирует “example.styl” в “example.css”, в той же директории.

Слово stylus запускает команду. Затем мы указываем файл исходников < example.styl, далее > example.css пишем название файла CSS, который будет создан после компиляции.

Вы также можете добавить дополнительные флаги к этой команде, к примеру --compress флаг уберёт все пробелы в итоговом CSS файле:

1
stylus --compress < example.styl > example.css

Вы можете не компилировать каждый файл вручную, в качестве альтернативы вы можете скомпилировать все Stylus файлы в CSS, из одной папки в другую. Для этого после команды stylus укажите папку с исходниками, затем используйте флаг --out, после чего напишите имя папки для скомпилированных CSS файлов.

К примеру, чтобы скомпилировать все Stylus файлы в папке “source_files” в папку “assets/css”, используйте:

1
stylus source_files --out assets/css

Обратите внимание: папка в которую отправятся скомпилированные файлы уже должна быть создана, до того, как вы запустите команду, иначе вы увидите ошибку сообщающую о том, что не удаётся найти директорию для CSS файлов.

Есть несколько других опций, которые можно применить работая со Stylus в командной строке. Прочитать о них можно, посетив: http://stylus-lang.com/docs/executable.html

Sass / SCSS

Sass пожалуй самый популярный препроцессор на сегодняшний день. Он невероятно мощный с ним можно добиться потрясающих результатов, также вокруг этой технологии образовалось довольно активное комьюнити. На основе Sass были созданы такие библиотеки, как Compass, Bourbon и Susy.

Прочитайте больше о Sass на: http://sass-lang.com/

У вас есть два выбора когда дело доходит до компиляции Sass на вашем компьютере: вы можете использовать для этого Ruby, либо LibSass.

Изначально Sass был создан на Ruby, так что если вам нужна 100% поддержка функций Sass, Ruby - ваш выбор. К примеру если вы собираетесь работать с Compass самый простой способ будет использовать Ruby Sass.

LibSass была создана как альтернатива Ruby Sass благодаря, которой можно компилировать sass посредством npm библиотеки. В этом случае sass компилируется гораздо быстрее, время компиляции составляет примерно половину секунды, по сравнению с 5-ю секундами Ruby Sass. Однако некоторые функции и сторонние библиотеки не будут работать с LibSass.

Какой из компиляторов выбрать, полностью зависит от ваших предпочтений, однако я предлагаю использовать LibSass ради быстрой компиляции, если же вам конечно не нужно что-то специфичное (например Compass), в этом случаее вам придётся использовать Ruby компилятор.

Не смотря на ваш выбор, мы рассмотрим оба, так что вы будите готовы к любой из вышеперечисленных ситуаций.

Установки Ruby Sass

Для компиляции Sass посредством Ruby, на вашем компьютере должен быть установлен Ruby.

Если вы на Mac'е, вам повезло, так как Ruby предустановлен и вам не нужно ничего делать.

Если вы на Windows, отправляйтесь на http://rubyinstaller.org/, затем скачайте и запустите установщик. После чего поставить Sass можно будет запустив эту команду:

1
[sudo] gem install sass

Sass будет автоматически загружен и установлен для вас. Для того, чтобы убедиться, что sass был установлен запустите эту команду:

1
sass -v

Вы увидите номер версии и название установленного Sass в вашем терминале:

Компиляция с Ruby Sass

Чтобы скомпилировать файл используя Ruby Sass просто напишите sass, имя исходного файла, пробел, имя, которое будет у скомпилированного CSS файла:

1
sass source_file.scss compiled_file.css

Отслеживание Изменений с Ruby Sass

В Ruby Sass есть встроенная функция “watch” (мы разберём тему об отслеживании файлов позже), которая будет следить за изменениями в файлах и автоматически компилировать их, каждый раз после сохранения.

Чтобы воспользоваться данной функцией добавьте --watch флаг к вашей команде, затем укажите исходный и итоговый файл, разделённые двоеточием вместо пробела:

1
sass --watch source_file.scss:compiled_file.css

Вы также можете указать целую директорию, вместо одного файла, к примеру:

1
sass --watch source/sass:assets/css

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

Больше Информации о Командах

Узнать все доступные опции Ruby Sass можно, запустив:

1
sass --help

В вашем терминале вы увидите документацию по командам Sass:

Также вы можете воспользоваться --help флагом, для того чтобы получить больше информации об определённой команде. Просто напишите имя команды, после чего --help и вы получите информацию, как на скриншоте выше.

Установка LibSass / node-sass

Если вы будете работать с LibSass, вы можете поставить его также, как npm библиотеки, которые были установлены с помощью npm до этого, в цикле этих статей.

LibSass написан на C/C++, но есть различные реализации, включая те, которые работают с Node.js. В нашем случае мы будем использовать node-sass.

Для установки node-sass глобально, запустите команду:

1
[sudo] npm install node-sass -g

Компиляция с node-sass

Чтобы скомпилировать файл, напишите node-sass, затем имя исходного файла, после этого имя скомпилированного CSS файла:

1
node-sass source_file.scss compiled_file.css

Указать директорию в которую попадёт скомпилированный CSS файл можно добавив --output флаг и имя необходимой папки:

1
node-sass source_file.scss --output assets/css compiled_file.css

Отслеживание Изменений с node-sass

Также как и Ruby Sass, node-sass имеет --watch флаг, для авто-компиляции файлов после изменения:

1
node-sass --watch source_file.scss compiled_file.scss

Вы также можете указать целую директорию для отслеживания, вместо одного файла:

1
node-sass --watch source/sass/* --output assets/css

Используя node-sass для отслеживания изменений в папке в конце не забудьте написать /*, тем самым вы дадите знать компилятору, что хотите отслеживать все файлы в данной директории.

Остановка "watch" Процесса

Когда запущен “watch” процесс его можно остановить либо:

  • Закрыв терминал
  • Либо нажав CTRL + C

LESS

Препроцессор LESS также очень популярный, вероятнее всего вы могли о нём слышать, так как на нём реализован Twitter Bootstrap фреймворк. LESS замечательный препроцессор с которого неплохо начать, если вы до этого не использовали их, так как вы можете писать обычный CSS.

Прочитайте больше о LESS на: http://lesscss.org/

Установка LESS

Глобально установить LESS, для компиляции “.less” файлов где угодно, можно запустив команду:

1
[sudo] npm install less -g

Компиляция LESS

Откройте терминал в папке содержащей  ваш LESS файл и запустите команду lessc, затем название файла, после > символ, и в конце имя, которое вы хотите задать итоговому CSS файлу:

1
lessc source_file.less > compiled_file.css

Автоматическое Добавление Вендорных Префиксов к CSS

Autoprefixer библиотека npm, которая запрашивает актуальную информацию, с сайта CanIUse.com,  о том каким свойствам CSS нужны вендорные префиксы. После чего они будут добавлены в ваш код.

Это будет невероятно полезно, если конечно вы не следите за обновлениями браузеров на регулярной основе, также вы можете обнаружить, что вы добавили префиксы, в которых больше нет необходимости. Это значит, что вы можете писать CSS не думая о префиксах, так как Autoprefixer позаботится о них за вас.

К примеру, autoprefixer сделает из этого кода:

1
a { 
2
    display: flex;
3
}

...такой:

1
a {
2
    display: -webkit-box;
3
    display: -webkit-flex;
4
    display: -ms-flexbox;
5
    display: flex;
6
}

Прочитать больше об Autoprefixer можно на: https://www.npmjs.com/package/autoprefixer

Установка Autoprefixer

Установите Autoprefixer глобально командой:

1
[sudo] npm install autoprefixer -g

Авто Добавление Префиксов CSS Файлу

Для автоматического добавление вендорных префиксов CSS файлу используйте команду:

1
autoprefixer style.css

В отличии от препроцессоров, не будет создан новый файл, по умолчанию. Файл, который вы указали будет обновлён и все нужные префиксы будут добавлены непосредственно в него.

Если же вы хотите, чтобы Autoprefixer создал ещё один файл, добавьте --output фалг и напишите после него имя для css файла с префиксами:

1
autoprefixer unprefixed.css --output prefixed.css

Оптимизация CSS

Пожалуй вы всегда хотите, чтобы CSS файл, который будет находится на вашем сайте был сжат до максимально возможных размеров. Для достижения этого подойдут следующие техники по оптимизации:

  • Сжатие - удаление пробелов и комментариев
  • Чистка - модификация самого кода, чтобы он занимал меньше места

Сжатие с Препроцессорами

Stylus, Ruby Sass и node-sass все обладают возможностью сжать ваш CSS во время процесса компиляции.

Для Stylus, добавьте --compress флаг:

1
stylus --compress < source_file.scss > compiled_file.css

Для Ruby Sass добавьте --style флаг, после чего напишите compressed:

1
sass source_file.scss compiled_file.css --style compressed

Для node-sass добавьте флаг --output-style, затем напишите compressed:

1
node-sass --output-style compressed source_file.scss compiled_file.css

Чистка и Сжатие с clean-css 

Если вы не используете CSS препроцессор, или вы хотите максимально оптимизировать код, вы можете воспользоваться библиотекой clean-css, которая обладает различными опциями для сжатия.

Обычно процесс сжатия заключается в удалении пробелов и комментариев в вашем CSS. Библиотека clean-css в свою очередь способна:

  • Объединить повторяющиеся имена селекторов
  • Объеденить повторяющиеся свойства в приделах одного селектора
  • Округлить числа с большим количеством десятичных
  • Убрать точку с запятой и пробелы в конце стилей селекторов

Объединение повторяющихся селекторов может быть полезным, для примера, хотели бы вы, чтобы все стили лэйаута для определённого класса находились в “layout.css” файле, когда всё стили отвечающие за цвета находились в “colors.css”.

Округление чисел отлично подойдёт, когда вы использовали функции препроцессора, для конвертации значений в rem и в итоге получили, что-то на подобии 2.3649858573rem.  С clean-css это число будет округлено до двух десятичных, в конце-концов у вас будет более короткое 2.36rem значение.

Вы можете прочитать больше о clean-css на: https://github.com/jakubpawlowicz/clean-css

Установка clean-css

Установите clean-css глобально командой:

1
[sudo] npm install clean-css -g

Использование clean-css

Для чистки CSS файла используйте:

1
cleancss style.css

Обратите внимание: Не смотря на то что в названии библиотеки есть тире “clean-css”, используйте cleancss без тире для запуска команд.

Чтобы указать новое имя файла, который появится после генерации clean-css, используйте -o флаг, затем напишите имя итогового файла, после, имя файла который вы хотите оптимизировать:

1
cleancss -o cleaned.css style.css

Для clean-css есть ещё несколько доступных опций, о которых можно прочитать в: Как Использовать Clean CSS CLI.

HTML и JavaScript

Jade

Jade замечательный язык, который компилируется в HTML, с ним можно писать более короткий код при разработке, а также создавать системы шаблонов, благодаря, которым вам не придется переписывать похожий код по нескольку раз.

Прочитать больше о Jade можно здесь: https://www.npmjs.com/package/jade

Установка Jade

Для глобальной установки Jade запустите команду:

1
[sudo] npm install jade -g

Компиляция Jade

Jade был создан тем же человеком, который разработал Stylus и обладает таким же синтаксисом для команд < и > знаки для компиляции файла:

1
jade < index.jade > index.html

Данная команда скомпилирует “index.jade” в “index.html”, в той же директории.

Для компиляции всех файлов в определённой директории используйте:

1
jade dir_name

Указать директорию, в которую будут добавлены ваши HTML файлы можно флагом --out, между именем исходной и итоговой папки:

1
jade src_dir --out html_dir

Чтобы использовать отслеживание изменений и автоматическую компиляцию, добавьте сразу после команды jade флаг --watch.

Для одного файла:

1
jade --watch < index.jade > index.html

Для директорий:

1
jade --watch dir_name
1
jade --watch dir_name --out html_dir

Конкатенация и Минификация JavaScript Файлов

Также как мы хотим оптимизировать наши CSS файлы, мы хотим, чтобы наши JavaScript файлы были доставлены до браузера пользователя, как можно более эффективно.

Привычное дело, что в каждом проекте есть несколько JS файлов, к примеру Modernizr, jQuery, а также наш собственный JS код, но нам хотелось-бы уменьшить количество http запросов, которые делает наш сайт. По мимо этого JavaScript должен загружаться невероятно быстро.

Лучший способ разобраться с обоими задачами одновременно, объединить наши JavaScript файлы в один, тем самым понадобиться лишь один http запрос для загрузки, а также минифицировать итоговый файл, уменьшив его размер.

Мы будем использовать UglifyJS библиотеку, которая позаботиться о данном процессе.

Для глобальной установки uglify-js запустите:

1
[sudo] npm install uglify-js -g

Чтобы объединить два JavaScript файла, затем убрать пробелы и комментарии, воспользуйтесь uglifyjs командой, после которой не забудьте указать имя исходного и итогового файла, с пробелом между ними. Затем напишите флаг --output и имя нового сконкатенированного и минифицированного файла:

1
uglifyjs input1.js input2.js --output input.min.js

Помимо удаления пробелов и комментариев, вы можете воспользоваться сжатием, тем самым ваш код будет модифицирован, а размер его уменьшится. Для этого добавьте --compress флаг к концу команды:

1
uglifyjs input1.js input2.js --output input.min.js --compress

Другая доступная опция по оптимизации - “искажать” код, при этом все имена функций, переменных и аргументов будут уменьшены до одного знака. Для того чтобы использовать эту опцию добавьте --mangle в конце команды:

1
uglifyjs input1.js input2.js --output input.min.js --mangle

Вы также можете сжать и исказить одновременно, добавив оба флага:

1
uglifyjs input1.js input2.js --output input.min.js --mangle --compress

Прочитайте больше о командах UglifyJS на: https://www.npmjs.com/package/uglify-js

Заметка о Минификации Сторонних Библиотек JavaScript

Если вы объединяете и/или минифицируете сторонние библиотеки, такие, как jQuery, Modernizr и так далее, убедитесь, что вы используете не минифицированные версии файлов этих библиотек. Обычно это плохая идея минифицировать уже минифицированные файлы, ваши библиотеки могут перестать функционировать, как надо.

Вы можете определить файлы, которые уже были минифицированы, все они обычно следуют соглашению о названиях “name.min.js”, не минифицированная версия будет носить имя “name.js”.

В Следующем Туториале

Теперь вам известно, как выполнять задачи, различными полезными командами, но что если вы можете сделать всё необходимое в вашем проекте разом, одновременно, лишь одной командой?

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

Увидимся в следующем туториале!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.