Skip to content

Enkil/template-frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π¨Π°Π±Π»ΠΎΠ½ Front-End ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, слуТащий шаблоном для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚ Π½Π°Π΄ Front-End ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ сборка осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Gulp

ВрСбования

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ шаблона Π² систСмС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ глобально установлСны bower ΠΈ nodejs (вмСстС с npm)

Установка шаблона

$ git clone https://github.com/Enkil/template-frontend.git app-name
$ cd app-name
$ npm i -d
$ bower install

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ выполнСния Π±ΡƒΠ΄ΡƒΡ‚ установлСны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ ΠΈΡ… зависимости. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² шаблонС устанавливаСтся ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Bootstrap 3 ΠΈ Bootstrap Material Design. Однако, шаблон Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π½Π΅ навязываСт использованиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² - с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ bower ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Gulp

ПослС установки шаблона ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

Π—Π°Π΄Π°Ρ‡ΠΈ Gulp

  • $ gulp html - сборка HTML ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с использованиСм ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ΠΉ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • $ gulp js - сборка JavaScript ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • $ gulp less - компилиция Less
  • $ gulp images - оптимизация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
  • $ gulp svg - оптимизация SVG
  • $ gulp png-sprite - созданиС PNG-спрайта
  • $ gulp svg-sprite - созданиС SVG-спрайта
  • $ gulp fonts - ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²
  • $ gulp clean - очистка ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° build/
  • $ gulp webserver - запуск локального Π²Π΅Π±-сСрвСра для livereload ΠΈ синхронного тСстирования Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…
  • $ gulp gh-pages- Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ скомпилированного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Github Pages
  • $ gulp build - полная сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • $ gulp watch - запуск Π·Π°Π΄Π°Ρ‡ΠΈ webserver ΠΈ отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  • $ gulp default - запуск Π·Π°Π΄Π°Ρ‡ΠΈ watch

ΠžΠ±Ρ‰Π°Ρ концСпция

  • src/ - ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для размСщСния Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² (html-ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, less-Ρ„Π°ΠΉΠ»Ρ‹, Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚ΠΊΠΈ js, изобраТСния для сборки Π² спрайты ΠΈ Ρ‚.Π΄.)
  • build/ - ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для размСщСния скомпилированной вСрстки
  • design/ - ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для локального хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π½Π΅ отслСТиваСтся Π² Git ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π² послСдствии Π·Π°Π»ΠΈΡ‚ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Вся Ρ€Π°Π±ΠΎΡ‚Π° осущСствляСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src/. Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ build/ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ вносятся. Back-End Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ/ΠΈΠ»ΠΈ Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ пСрСдаСтся содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° build/ ΠΈΠ»ΠΈ прСдоставляСтся доступ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹

HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°

Π—Π°Π΄Π°Ρ‡Π° $ gulp html

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π΅Ρ€ΡΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΡ€Π½Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° src/ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ index.html)
Π€Π°ΠΉΠ»Ρ‹ html ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π±Π»ΠΎΠΊΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ‰ΠΈΠΉ header, footer, ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ Ρ‚.Π΄.) Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src/html-blocks/ :

  • src/html-blocks/common - Ρ„Π°ΠΉΠ»Ρ‹ html-Π±Π»ΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° всСх страницах сайта
  • src/html-blocks/common/modals - Ρ„Π°ΠΉΠ»Ρ‹ html ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° всСх страницах сайта
  • src/html-blocks/pages--external - Ρ„Π°ΠΉΠ»Ρ‹ html-Π±Π»ΠΎΠΊΠΎΠ², Π²Π½Π΅ΡˆΠ½ΠΈΡ… страниц сайта (страниц, доступных Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±Π΅Π· Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° сайтС)
  • src/html-blocks/pages--internal - Ρ„Π°ΠΉΠ»Ρ‹ html-Π±Π»ΠΎΠΊΠΎΠ², Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… страниц сайта (страниц, доступных Π·Π°Π»ΠΎΠ³ΠΈΠ½Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, страницы Ρ€Π°Π·Π΄Π΅Π»Π° "Π›ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚")

ΠŸΡ€ΠΈ нСобходимости Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ структуру, ΠΏΡ€ΠΈ этом сборка html ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Для указания Ρ‚ΠΎΠ³ΠΎ содСрТимоС ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция Π²ΠΈΠ΄Π°

<!--build:include html-blocks/pages--external/file-name.html-->
This will be replaced by the content of html-blocks/pages--external/file-name.html
<!--/build-->
  • содСрТимоС Ρ„Π°ΠΉΠ»Π° file-name.html Π±ΡƒΠ΄Π΅Ρ‚ вставлСно Π½Π° мСсто Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°

ДопускаСтся использованиС влоТСнности, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, содСрТащим ΠΊΠΎΠ΄ html-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π±Π»ΠΎΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ содСрТимоС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с Π±Π»ΠΎΠΊΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ.
ΠŸΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ написаниС ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.

НапримСр,
Π’ Ρ„Π°ΠΉΠ»Π΅ src/html-blocks/pages-external/header--external.html ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° src/html-blocks/common/modals/login.html
Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π²Ρ‹Π·ΠΎΠ² ΠΏΠΈΡˆΠ΅Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ

<!--build:include ../common/modals/login.html-->
This will be replaced by the content of ../common/modals/login.html
<!--/build-->

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Less

Π—Π°Π΄Π°Ρ‡Π° $ gulp less

Π€Π°ΠΉΠ» src/styles/styles.less являСтся диспСтчСром ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ для всСх ΠΏΡ€ΠΎΡ‡ΠΈΡ… less-Ρ„Π°ΠΉΠ»ΠΎΠ².
БСкция Third party ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ less/css Ρ„Π°ΠΉΠ»ΠΎΠ² сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².
БСкция Custom - для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ собствСнных Ρ„Π°ΠΉΠ»ΠΎΠ² стилСй.

ΠŸΡ€ΠΈ компиляции происходит объСдинСниС всСх Ρ„Π°ΠΉΠ»ΠΎΠ², компиляция Π² CSS, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ стиля кодирования, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Π½Π΄ΠΎΡ€Π½Ρ‹Ρ… прСфиксов, минификация ΠΈ запись sourcemaps. Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ стилСвых Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/css (style.css, style.min.css, style.min.css.map)

Для упрощСния Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ прСдполагаСтся структура размСщСния исходных Ρ„Π°ΠΉΠ»ΠΎΠ² схоТая с html-Π±Π»ΠΎΠΊΠ°ΠΌΠΈ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ JavaScript

Π—Π°Π΄Π°Ρ‡Π° $ gulp js

Π€Π°ΠΉΠ» src/js/vendor.js являСтся диспСтчСром ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ js Ρ„Π°ΠΉΠ»ΠΎΠ² сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².
Π€Π°ΠΉΠ» src/js/custom.js являСтся диспСтчСром ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ собствСнных js Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠŸΡ€ΠΈ компиляции происходит объСдинСниС всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок (ΠΏΡ€ΠΈ этом ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»Ρ‹ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ написаны Π½Π°ΠΌΠΈ), минификация ΠΈ запись sourcemaps. Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» помСщаСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/js (main.js, main.min.js, main.min.js.map)

Для упрощСния Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ прСдполагаСтся структура размСщСния исходных Ρ„Π°ΠΉΠ»ΠΎΠ² схоТая с html-Π±Π»ΠΎΠΊΠ°ΠΌΠΈ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π—Π°Π΄Π°Ρ‡Π° $ gulp images

ВсС ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π½Ρ‹Π΅ изобраТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² спрайт, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/images.
ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ всС изобраТСния ΠΈΠ· этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.
Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/img/images/

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ SVG

Π—Π°Π΄Π°Ρ‡Π° $ gulp svg

ВсС SVG изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² спрайт, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/svg.
ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ всС SVG ΠΈΠ· этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.
Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/img/svg/

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ PNG-спрайта

Π—Π°Π΄Π°Ρ‡Π° $ gulp png-sprite

ВсС изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π² спрайт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, png-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠΊΠΎΠ½ΠΎΠΊ) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/sprites/png.
Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ спрайт Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/img/sprites/png/png-sprite.png.
Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ Ρ„Π°ΠΉΠ» src/styles/common/_png-sprite.less, содСрТащий примСси (mixins) для Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ спрайта.
Имя примСси (mixin) всСгда выглядит ΠΊΠ°ΠΊ @sprite-filename, Π³Π΄Π΅ filename - имя изобраТСния, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊ спрайту.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с спрайтом ΠΈ Π΅Π³ΠΎ стилями.

  • Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ png-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src/img/sprites/png/html5.png
  • ЗапускаСм Π·Π°Π΄Π°Ρ‡Ρƒ $ gulp png-sprite
  • Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» src/styles/common/icons.less
  • Π’ Π½Π΅ΠΌ создаСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ CSS-классы:
.png-sprite{
  &:before{
    content: '';
    display: inline-block;
  }

  &--html5:before{
    .sprite(@sprite-html5);
  }
}
  • Π€Π°ΠΉΠ» src/styles/common/icons.less ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π² src/styles/style.less с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции @import (@import "common/icons.less";)
  • ПослС компиляции less (запускаСм Π·Π°Π΄Π°Ρ‡Ρƒ $ gulp less)ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ CSS ΠΊΠΎΠ΄
.png-sprite:before
{
    display: inline-block;

    content: '';
}
.png-sprite--html5:before
{
    width: 24px;
    height: 24px;

    background-image: url(../img/sprites/png/png-sprite.png);
    background-position: 0 0;
}
  • html-Ρ‚Π΅Π³Ρƒ, ΠΎΠΊΠΎΠ»ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΡƒ, добавляСм CSS-классы png-sprite png-sprite--html5

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: <h2 class="png-sprite png-sprite--html5">Test PNG sprite</h2>

Π Π°Π±ΠΎΡ‚Π° с спрайтом Π² Ρ‚Π°ΠΊΠΎΠΌ случаС сводится ΠΊ добавлСнию Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/sprites/png
ΠΈ созданию CSS-класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вызываСтся ΠΏΡ€ΠΈΠΌΠ΅ΡΡŒ (mixin), созданная ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ спрайта.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ примСси (mixins) ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, вызывая изобраТСния с спрайта, Π½Π΅ Π² псСвдоэлСмСнтС :before

Π˜Ρ‚ΠΎΠ³ΠΎ, для добавлСния Π² спрайт ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Less/CSS-ΠΊΠΎΠ΄Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ

  • Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/sprites/png ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (html5.png)
  • Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ $ gulp png-sprite

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Retina-ready спрайта

Для создания PNG-спрайта Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ Retina-экраны ΠΈ экраны ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ плотности, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
src/img/sprites/png ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» изобраТСния Π²Π΄Π²ΠΎΠ΅ большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Π΅ΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ. Имя Ρ„Π°ΠΉΠ»Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ
Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ постфикс -2x (filename-2x.png).
ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, html5.png ΠΈ html5-2x.png).
Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ спрайта создаСтся спрайт build/img/sprites/png-sprite-2x.png ΠΈ пСрСмСнная Π²ΠΈΠ΄Π° @sprite-filename-group,
(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, @sprite-html5-group).
Для Π²Ρ‹Π·ΠΎΠ²Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (mixin) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅ΡΡŒ (mixin) .retina-sprite()
НапримСр, .retina-sprite(@sprite-html5-group)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° icons.less:

.png-sprite{
  &:before{
    content: '';
    display: inline-block;
  }

  &--html5:before{
    .sprite(@sprite-html5);
  }

  &--html5-retina:before{
    .retina-sprite(@sprite-html5-group)
  }
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅

<h2 class="png-sprite png-sprite--html5-retina">Test Retina-ready PNG sprite</h2>

Π˜Ρ‚ΠΎΠ³ΠΎ, для добавлСния Π² спрайт ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Less/CSS-ΠΊΠΎΠ΄Π° Retina ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ

  • Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/sprites/png Π΄Π²Π° изобраТСния - ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΈ Π²Π΄Π²ΠΎΠ΅ большСС, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ постфиксом -2x (html5.png, html5-2x.png)
  • Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ $ gulp png-sprite

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ SVG-спрайта

Π—Π°Π΄Π°Ρ‡Π° $ gulp svg-sprite

ВсС SVG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π² спрайт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, svg-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠΊΠΎΠ½ΠΎΠΊ) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/sprites/svg.
Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ спрайт Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/img/sprites/svg/svg-sprite.svg, ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ создан Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ спрайт
build/img/sprites/svg/svg-sprite.png для отобраТСния Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… SVG.
Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ Ρ„Π°ΠΉΠ» src/styles/common/_svg-sprite.less, содСрТащий CSS-классы для Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ спрайта.
Имя CSS-класса всСгда выглядит ΠΊΠ°ΠΊ @svg-sprite-filename, Π³Π΄Π΅ filename - имя изобраТСния, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊ спрайту.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SVG-спрайтом ΠΈ Π΅Π³ΠΎ стилями.

  • Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ svg-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src/img/sprites/svg/html5.svg
  • ЗапускаСм Π·Π°Π΄Π°Ρ‡Ρƒ $ gulp svg-sprite
  • Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» src/styles/common/svg-icons.less
  • Π’ Π½Π΅ΠΌ создаСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ CSS-классы:
.svg-sprite{
  &:before{
    content: '';
    display: inline-block;
    width: 32px!important;
    height: 32px!important;
    background-size: contain!important;
  }

  &--html5-icon:before{
    .svg-sprite--html5(); // CSS-класс, созданный ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ SVG-спрайта.
  }

}
  • Π€Π°ΠΉΠ» src/styles/common/svg-icons.less ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π² src/styles/style.less с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции @import (@import "common/svg-icons.less";)
  • ПослС компиляции less (запускаСм Π·Π°Π΄Π°Ρ‡Ρƒ $ gulp less) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ CSS ΠΊΠΎΠ΄
.svg-sprite--html5
{
    width: 47px;
    height: 47px;

    background-image: url('../img/sprites/svg/svg-sprite.svg');
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: 47px 47px;
}
.no-svg .svg-sprite--html5
{
    background-image: url('../img/sprites/svg/svg-sprite.png');
}


.svg-sprite:before
{
    display: inline-block;

    width: 32px!important;
    height: 32px!important;

    content: '';

    background-size: contain!important;
}
.svg-sprite--html5-icon:before
{
    width: 47px;
    height: 47px;

    background-image: url('../img/sprites/svg/svg-sprite.svg');
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: 47px 47px;
}
.no-svg .svg-sprite--html5-icon:before
{
    background-image: url('../img/sprites/svg/svg-sprite.png');
}
  • html-Ρ‚Π΅Π³Ρƒ, ΠΎΠΊΠΎΠ»ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΡƒ, добавляСм CSS-классы svg-sprite svg-sprite--html5-icon

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: <h2 class="svg-sprite svg-sprite--html5-icon">Test SVG sprite</h2>

Π Π°Π±ΠΎΡ‚Π° с SVG-спрайтом Π² Ρ‚Π°ΠΊΠΎΠΌ случаС сводится ΠΊ добавлСнию Π½ΡƒΠΆΠ½Ρ‹Ρ… SVG Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/sprites/svg
ΠΈ созданию CSS-класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вызываСтся Π² качСствС примСси (mixin) CSS-класс, созданный ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ спрайта.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS-классы, созданныС ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ спрайта ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, вызывая изобраТСния с спрайта, Π½Π΅ Π² псСвдоэлСмСнтС :before

Π˜Ρ‚ΠΎΠ³ΠΎ, для добавлСния Π² спрайт ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Less/CSS-ΠΊΠΎΠ΄Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ

  • Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/img/sprites/svg ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (html5.svg)
  • Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ $ gulp svg-sprite

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²

Π—Π°Π΄Π°Ρ‡Π° $ gulp fonts

Π€Π°ΠΉΠ»Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src/styles/fonts.
ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ скопированы Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/css/fonts.
Π’Π°ΠΆΠ½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊ Π½ΠΈΠΌ ΠΏΡƒΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ Less, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΡƒ.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° сборки

Π—Π°Π΄Π°Ρ‡Π° $ gulp clean

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удаляСтся содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° build/ Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° build/.gitignore

Полная сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π—Π°Π΄Π°Ρ‡Π° $ gulp build

ΠŸΡ€ΠΈ запускС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ clean, html, js, less, images, png-sprite, svg-sprite, svg, fonts, gh-pages.
Π’ ΠΈΡ‚ΠΎΠ³Π΅ выполнСния Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ build/ формируСтся полная сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с нуля.

Livereload ΠΈ синхронизация ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ

Π—Π°Π΄Π°Ρ‡Π° $ gulp webserver

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ запускаСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-сСрвСр BrowserSync ΠΈ открыватся index.html ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ BrowserSync

Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ build/ Π² качСствС корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΈ запускС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

[App Front-End] Access URLs:
 ----------------------------------------------
       Local: http://localhost:9000 // Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ URL ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    External: http://192.168.0.100:9000 // внСшний (Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… локальной сСти) URL ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… устройствах Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ сСти)
      Tunnel: https://iuvrvzmmli.localtunnel.me // Π’ΡƒΠ½Π½Π΅Π»ΡŒ - Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ URL, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠΈΡ€Π° ΠΈ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС обновлСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
 ----------------------------------------------
          UI: http://localhost:3001 // Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ URL WebUI BrowserSync
 UI External: http://192.168.0.100:3001 // внСшний (Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… сСти) URL WebUI BrowserSync
 ----------------------------------------------
[App Front-End] Serving files from: ./build // ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для BrowserSync

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π½Π° Github Pages

Π—Π°Π΄Π°Ρ‡Π° $ gulp gh-pages

ΠŸΡ€ΠΈ запускС Π·Π°Π΄Π°Ρ‡ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ создана Π²Π΅Ρ‚ΠΊΠ° gh-pages ΠΈ Π² Π½Π΅Π΅ Π·Π°Π»ΠΈΡ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° build/.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ GitHub Pages

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π—Π°Π΄Π°Ρ‡Π° $ gulp watch

ΠŸΡ€ΠΈ запускС сначала выполняСтся Π·Π°Π΄Π°Ρ‡Π° $ gulp webserver, Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src/ ΠΊΠ°ΠΊΠΈΡ…
Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², автоматичСски запускаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Настройки шаблона

Π’ Ρ„Π°ΠΉΠ»Π΅ gulpfile.js Π² сСкции Settings Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Path settings Π·Π°Π΄Π°ΡŽΡ‚ΡΡ
ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ размСщСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΈΡ‚ΠΎΠ³ΠΎΠ² сборки), исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡƒΡ‚Π΅ΠΉ для отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

РСкомСндуСтся ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· этот Ρ€Π°Π·Π΄Π΅Π», ΠΏΡ€ΠΈ нСобходимости дополняя Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

About

Front-End template for new project start

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published