13 июля 2015 г.

Gulp для статики

Статья описывает пошаговую настройку Gulp для обслуживания статических web-страничек (вёрстка).
Один нюанс - эту всю прелесть будем заводить под Windows (таково пожелание клиента :( ).

  1. Необходим поставить Node.js.
    • Проще всего это сделать с оффициального сайта https://nodejs.org/, и нажать большую зелёную кнопку [Install].
    • Скачать инсталлятор и установить методом Next > Next > Next...
    • !!!Важно: не забыть проверить, что среди компонентов для установки выбраны npm package manager и Add to PATH.
  2. Создать в папке с проектом два каталога _src и _dist.
    В _src будут "исходные" файлы (каталоги js, css, img, sass), в _dist - скомпилированный проект с минифицированными стилями/картинками/итд.
  3. Здесь необходимо создать два тектовых файла:
    package.json - настройка проекта для node.js,
    gulpfile.js - файл-сценарий для gulp.
    Примеры можно взять здесь https://gist.github.com/Jinnmv/1c058a65bda7d9adad22
  4. Пора запустить коммандную строку <win>+<r> cmd,
    зайти в папку с проектом
    • D:
    • cd Projects\Static01
  5. В коммандной строке:
    npm install --global gulp gulp-autoprefixer gulp-imagemin gulp-livereload gulp-minify-css gulp-rename gulp-replace gulp-sass gulp-sourcemaps gulp-watch
    npm - node package manager, пакетный менеджер node. Данная комманда установит указанные модели/пакеты node.js глобально - т.е. в C:\User\..\AppData\..

    npm link
    эта комманда сделает сслыки на все необходимые пакеты (указанные в package.json) из глобально установленных (дабы не занимать лишнее место на диске).
    если что-то пошло не так, можно прибегнуть к простому методу:
    npm install

  6. Готово. Теперь можно запустить gulp и наслаждаться магией (gulp в коммандной строке)
Для полного счастья было бы здорово установить плагин LiveReload для Хрома

Теперь можно открывать файлик из _src/index.html в хроме, и наслаждаться автоматичексим обновлением страницы при изменении файлов проекта.

P.S.: Написано специально для Серёги.

UPD: список изменений:
  1. gulpfile.js переписан так, что он теперь работает с вложенными папками внутри _src и восстанавливает их иерархию в _dist
  2. из css-файлов (не-пожатых) удалется строка с указанием sourcemap, потому как sourcemap не будет в _dist (не умеет смысла).
  3. Теперь поломан livereload, потому как непонятно какую из вложенных папок слушать. Буду искать решение.

TODO: Добавить локальный мини-сервер + livereload. Перенос шрфитов + генерация css.

Комментариев нет:

Отправить комментарий