Grunt- ΠΈ Gulp-ΡΠ°ΡΠΊΠΈ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
#Grunt- ΠΈ Gulp-ΡΠ°ΡΠΊΠΈ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° Π²ΠΎΠ²Π»Π΅ΡΡΠ½Π½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π½Π° ΠΈΡ ΠΎΡΡΡΠ΅Π½ΠΈΡ ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ°ΠΉΡΠΎΠΌ ΠΈ Π΅Π³ΠΎ Π΄ΠΎΡ ΠΎΠ΄Π½ΠΎΡΡΡ. Π ΡΡΠ°ΡΡΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Β«Make The Web FasterΒ» ΠΈΠ· Google ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Π° Π½Π°Π±ΠΎΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π²Π°ΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ Π»ΡΠ³ΠΊΠΈΠΌΠΈ, Π±ΡΡΡΡΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. ΠΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΡΠΎΠ΄Π΅ CSS ΠΈ JavaScript, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ CSS Π² ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ Ρ.Π΄.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π΄Π»Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ PageSpeed Π΄Π»Ρ Apache ΠΈ Nginx Ρ ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΈΠ· ΡΡΠΈΡ Π·Π°Π΄Π°Ρ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΠ»ΠΈ ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅Ρ, ΠΈΠ»ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ , ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²ΠΎΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Grunt- ΠΈ Gulp-ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Yeoman ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ webapp Π΄Π»Ρ Grunt ΠΈ Gulp ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Yeoman ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ HTML/CSS/JS. ΠΡ ΡΡΠΈΡΠ°Π΅ΠΌ, webapp β ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΠΎΡΠ½ΠΎΠ²Π°, Π° Π½Π°ΡΡΠΎΡΡΠ°Ρ ΡΡΠ°ΡΡΡ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
Π‘ΠΆΠ°ΡΠΈΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π‘ΡΠ΅Π΄Π½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠ΅ΠΉΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ 1.5 ΠΠ±, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ°. ΠΡ ΡΡΡΠ΅ΠΌΠΈΠΌΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Π½Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π»ΡΠΌΠΈ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ Π±Π°Π»Π°Π½ΡΠ΅ ΡΠΆΠ°ΡΠΈΡ ΠΈ ΡΠΎΡΠΌΠ°ΡΠ° Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°ΡΠΈΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°Π½Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ.Grunt
- grunt-contrib-imagemin
- grunt-imageoptim (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ OSX)
ΠΠΎΡΠ΅ΠΌΡ Π΄Π²Π° ΠΏΠ»Π°Π³ΠΈΠ½Π°? ΠΠΊ, Π²ΠΎΡ Π²Π°ΠΌ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π»Ρ Π²Π°Ρ.
Gulp
- gulp-imagemin
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ Π΅ΡΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π΄Π»Ρ Gulp, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ImageOptim.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π Π΅Π±ΡΡΠ° ΠΈΠ· Etsy Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ 160 KΠ± ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠΊΠ°Π· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π° 12%. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ , Ρ ΠΎΡΡ Π±Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΈΡ .
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
<picture>
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ°ΠΉΡ Ρ RWD, Π°Π΄Π°ΠΏΡΠΈΡΡΡΡΠΈΠΉΡΡ ΠΏΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠΌΠΈ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ΄Π°ΡΠ° ΠΈΠ·Π»ΠΈΡΠ½Π΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈ ΡΡΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠ°Π΄Π°ΡΡ.
ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ
ΠΌΡ ΡΠ°Π΄Ρ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ srcset β ΡΠΎ, ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ
ΠΏΠΎΠ»Π½ΠΎΠΌΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° <picture>
.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Grunt-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Grunt
- grunt-responsive-images — ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ
Imager.js, ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ
<picture>
ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠ»ΠΎΠΌ picturefill. - grunt-clowncar
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ grunt-image-resize.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π’ΠΈΠΌΠ° ΠΠ°Π΄Π»Π΅ΠΊΠ° Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π΄ΠΎ 72% Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠΊΠ° Π΅ΡΡ ΡΠ°Π½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΡΡΠΈ, BBC ΠΈ Guardian ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Imager.js Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΡΠΎΡΡ-Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ SVG ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
SVG ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ , ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (ΠΌΠ΅ΡΠ°-Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠΊΡΡΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ Ρ.Π΄.). ΠΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π±Π΅Π·Π²ΡΠ΅Π΄Π½ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΡΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π½Π΅ Π²Π»ΠΈΡΡ Π½Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ.
Grunt
- grunt-svgmin
Gulp
- gulp-svgmin
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΏΡΠ°ΠΉΡΠΎΠ²
Grunt
- grunt-spritesmith
Gulp
- gulp-sprite
ΠΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² WebP
WebP ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π²Π΅Π±Π° Ρ ΠΏΠΎΡΠ΅ΡΡΠΌΠΈ ΠΈ Π±Π΅Π·. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ WebP ΡΠΎ ΡΠΆΠ°ΡΠΈΠ΅ΠΌ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΡ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ Π½Π° 26% ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ PNG ΠΈ ΡΠΎ ΡΠΆΠ°ΡΠΈΠ΅ΠΌ Ρ ΠΏΠΎΡΠ΅ΡΡΠΌΠΈ Π½Π° 25-34% ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ JPEG. ΠΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ½ΠΎ ΠΈ, ΠΊ ΡΡΠ°ΡΡΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Grunt- ΠΈ Gulp-ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ WebP.
Grunt
- grunt-webp
Gulp
- gulp-webp
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π’Π΅ΡΡ, ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ WebPageTest, Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ JPEG Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ WebP ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡ. Π Chrome Web Store Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WebP Π΄Π°Π»ΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ 30% ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ, ΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΡΡΠ°ΡΠΈΠΊΠ° Π² Π΄Π΅Π½Ρ.
Π‘Π±ΠΎΡΠΊΠ° SVG ΡΠΏΡΠ°ΠΉΡΠΎΠ² Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²
Grunt
- grunticon
Gulp
- gulp-svgmin
ΠΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Data URI ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠ°Π»ΠΎ Π°Π½ΡΠΈ-ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠΌ, Π²Π»Π΅ΠΊΡΡΠΈΠΌ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π½ΠΈΠ·ΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ .
ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ CSS
ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΡΡΠ°Π½ΡΠ΅Ρ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ ΡΡΡΠΎΠΊ, ΠΎΡΡΡΡΠΏΡ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ½Ρ Π² ΡΠ΅Π»ΠΈΠ·Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. Π‘ΠΆΠ°ΡΠΈΠ΅ HTML-, CSS- ΠΈ JS-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΠ°ΡΡΠΈΠ½Π³, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ CSS ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ:
Grunt
- grunt-contrib-cssmin
Gulp
- gulp-cssmin
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ CSS
Π ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° CSS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ Π²ΡΠΎΠ΄Π΅ Bootstrap, Foundation ΠΈ Ρ.Π΄. Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²Π΅ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π² ΡΠ΅Π»ΠΈΠ·, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ UnCSS Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²Π°ΡΠΈΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΡΡΠΈΠ»Π΅ΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ Π΄ΠΎ 85% ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
Grunt
- grunt-uncss
Gulp
- gulp-uncss
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ UnCSS ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ CSS ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΠΈΠ»ΡΠΌΠΈ, Π²Π½Π΅Π΄ΡΡΠ΅ΠΌΡΠΌΠΈ Π² ΡΡΡΠ°Π½ΠΈΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ°Ρ ΠΎΡΠ²Π΅Ρ β Β«Π΄Π°Β». ΠΡΠΎ ΡΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ UnCSS ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΠ°ΡΠ΅ Ρ PhantomJS. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΡ 10 Π΄ΠΎ 120 ΠΠ± ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π½Π° ΡΠΈΠΏΠΎΠ²ΠΎΠΉ Bootstrap-ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ UnCSS ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ.
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ CSS
ΠΡΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ CSS-ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΡΠΎΠΈΡΡ ΠΈΡ Π² Π²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ, ΡΠΊΠΎΠ½ΠΎΠΌΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° CSS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ.
Grunt
- grunt-inline-css
Gulp
- gulp-inline-css
ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π₯ΠΎΡΡ ΡΡΠΎ ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ PageSpeed, Π½ΠΎ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅Π΄ΠΈΠ°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π΅Π΄ΠΈΠ½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΡ ΡΠΎΡΠ»ΠΈ ΡΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ CSS, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Π΄ΠΈΠ°-Π·Π°ΠΏΡΠΎΡΠΎΠ².
Grunt
- grunt-combine-media-queries
Gulp
- gulp-combine-media-queries
JavaScript
ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠΆΠ°ΡΠΈΠ΅ JS
Grunt
- grunt-contrib-uglify
- grunt-closure-compiler
Gulp
- gulp-uglify
- gulp-closure-compiler
RequireJS (ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Ρ r.js)
Grunt
- grunt-requirejs
Gulp
- RequireJS
ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ HTML
Grunt
- grunt-contrib-htmlmin
Gulp
- gulp-htmlmin
ΠΡΠΎΡΡΠ°Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ
Grunt
- grunt-contrib-concat
Gulp
- gulp-concat
ΠΠ±ΡΠ΅Π΅ ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²/ΠΏΠ°ΠΏΠΎΠΊ
Grunt
- grunt-contrib-compress
Gulp
- gulp-zip
Π‘ΠΆΠ°ΡΠΈΠ΅ Zopfli
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ°ΡΠΈΡ Zopfli β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΆΠ°ΡΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠ°Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° 3-8% ΠΌΠ΅Π½ΡΡΠ΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ zlib ΠΏΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΠΆΠ°ΡΠΈΡ.
Grunt
- grunt-zopfli
Gulp
- gulp-zopfli
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ³Π΄Π° Π² Google Fonts Π½Π°ΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Zopfli, ΡΡΠΈΡΡΡ ΡΡΠ°Π»ΠΈ Π»Π΅Π³ΡΠ΅ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π½Π° 6%, Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π° 15%. ΠΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ ΠΠ»ΡΠΈ ΠΡΠΈΠ³ΠΎΡΠΈΠΊΠ°, Π΄Π»Ρ Open Sans ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±ΡΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π° 10%, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π° ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΆΠ°ΡΡΠ΅ Ρ Zofli Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠ΅ JPG. ΠΡΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ WebP.
ΠΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ CSS ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΡΠΈ
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠ΅ΡΡΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.: Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ Β«above-the-foldΒ» β Π΄ΠΎ ΡΠ³ΠΈΠ±Π°, Ρ.Π΅. ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΊΡΠ°Π½ ΡΡΡΠ°Π½ΠΈΡΡ) βΒ ΡΠΎ Π΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ²ΠΈΠ΄ΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΡΠ°Π½ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
PageSpeed ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π²Π°ΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²ΡΠΎΠ΄Π΅ mod_pagespeed Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PhantomJS ΡΠΎ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ speedreport, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° Π²Π΅ΡΡ ΡΡΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΡΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ .
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ» ΠΠΈΠ½Π»ΡΠ½ Π½Π°ΠΏΠΈΡΠ°Π» Π±ΡΠΊΠΌΠ°ΡΠΊΠ»Π΅Ρ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΡΠΈΠ»Π΅ΠΉ Π²Π΅ΡΡ ΡΡΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ.
Asset pipeline (Π°Π²ΡΠΎ-ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ)
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ AssetGraph.
AssetGraph ΡΠΌΠΎΡΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ Π½Π° Π½Π°Π±ΠΎΡ Π·Π°Π΄Π°Ρ Π½Π° Π³ΡΠ°ΡΠ°Ρ , Π³Π΄Π΅ ΡΠ·Π»Π°ΠΌΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² (HTML, CSS, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, JS), Π° ΡΡΠ±ΡΠ°ΠΌΠΈ β ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ (ΡΠ΅Π³ΠΈ img, a, script ΠΈ Ρ.Π΄.).
ΠΡΠ»ΠΈ AssetGraph ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΠ΅ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ²ΡΠ·Π°Π½Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΈ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Grunt
- grunt-reduce
Gulp
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Gulp Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ AssetGraph.
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ·
ΠΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ Π±Π΅Π½ΡΠΌΠ°ΡΠΊ-ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ (Continuous Integration). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Grunt, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ gulp-grunt Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Grunt-ΡΠ°ΡΠΊΠΎΠ² ΡΠ΅ΡΠ΅Π· Gulp. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ:
grunt-pagespeed — ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π΅Π½ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π°ΡΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΡΠΊΠΎΠ² PageSpeed ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.
grunt-topcoat-telemetry — ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π³Π»Π°Π΄ΠΊΠΎΡΡΠΈ, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΠ· Telemetry, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡ ΠΎΠΆΡΡ Π½Π° ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² TopCoat.
grunt-wpt — Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΎΡΠΊΠ°ΠΌΠΈ WebPageTest.
grunt-phantomas — Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π·Π°ΠΏΡΠΎΡΡ, Π½Π° ΠΎΡΠ²Π΅ΡΡ, Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ/CSS/JS, Π²ΡΠ΅ΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ DOM ΠΈ Π΄ΡΡΠ³ΠΎΠ΅.
Framework Optimization
Grunt
- grunt-ngmin
- grunt-react
- grunt-vulcanize β Ρ ΠΎΡΠΎΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
Gulp
- gulp-ngmin
- gulp-react
- gulp-vulcanize
Misch
- gulp-google-cdn
- gulp-size
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π΅Π³ΠΎ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΡΡΡΡΠΎΠΌ. Π£Π΄Π΅Π»ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ β ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π°ΡΡ Π²Π°ΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ.
ΠΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ Π²Π°ΡΠΈΡ ΡΠ°ΠΉΡΠΎΠ² Π±ΡΠ΄ΡΡ ΡΡΠ°ΡΡΠ»ΠΈΠ²Π΅Π΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΈΠΊΠ°, Π΄Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅, Π±ΡΡΡΡΡΠΉ Π²Π΅Π± β Π»ΡΡΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ .
ΠΠ΅ΡΡΡΠΊΠ° Π»Π΅Π½Π΄ΠΈΠ½Π³Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Gulp, JavaScript ΠΈ HTML/CSS.
Π§Π°ΡΡΡ 1Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
09.01.2023 ΠΠΎΠ³Π΄Π°Π½Π° ΠΠ°ΠΉΠ²ΠΎΡΠΎΠ½ΡΠΊΠ°Ρ
Π€ΡΠΈΠ»Π°Π½ΡΠ΅ΡΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΉΡΠ° Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»Π°Π³Π°ΡΡΡ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ, ΠΎΠ·Π²ΡΡΠ΅Π½Π½ΡΠ΅ ΡΡΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠΊΠ΅. ΠΠ΅Π΄Ρ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΠΉ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π° Π΄ΠΎΠ²Π΅ΡΠΈΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡΠΊΠΎΠ²Π°Π½Π½ΠΎ Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠΎΡΠΎΠ½. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±Π΅Π·Π½Π°ΠΊΠ°Π·Π°Π½Π½ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠ΅ΠΉ, Π΅ΡΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ Π½ΡΠ°Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΡΠ΄Π½ΡΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΠ΅Π½Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ. ΠΠ°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π΅ ΡΡΠΎΡΠΎΠ½Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ Π΄ΠΎΠ±ΡΠΎΡΠΎΠ²Π΅ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ, ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ Π±Π°Π½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π΅Π΄ΠΎΡΠ°Π·ΡΠΌΠ΅Π½ΠΈΠ΅.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
02.01.2023 ΠΠ»Π°Π΄ Π‘Π²Π΅ΡΡΠΊΠΎΠ²
Π’Π°ΠΊ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π»Π°Π΄Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ Intern/Junior FrontEnd ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π² 2023 Π³ΠΎΠ΄Ρ? ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ Π½Π° ΡΠΊΡΠ°ΠΈΠ½ΡΠΊΠΎΠΌ ΡΡΠ½ΠΊΠ΅ Π°ΠΉΡΠΈ, ΠΌΡ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΠΈ ΠΎΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ². ΠΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ β Π½ΠΈΠΆΠ΅ Π² ΡΡΠ°ΡΡΠ΅.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
30.03.2021 ΠΠ»Π°Π΄ Π‘Π²Π΅ΡΡΠΊΠΎΠ²
ΠΠ΅ΡΡΡΠΊΠ° ΡΠ°ΠΉΡΠΎΠ² ΠΈ Π²Π΅Π±-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π² ΠΌΠΈΡ IT. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠ³ΠΎΠΌ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΆΠ΅Π»Π°ΡΡΠΈΡ ΡΡΠ°ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΡΠΈΠΊΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π³ΠΎΠ΄ΠΎΠΌ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΡΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°ΠΌ.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
29.07.2020 ΠΠ»Π°Π΄ Π‘Π²Π΅ΡΡΠΊΠΎΠ²
Full-stack ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ (ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡΡ βΡΡΠ»Π» ΡΡΠ΅ΠΊβ) β ΡΡΠΎ Π½Π΅ΠΊΠΈΠΉ ΠΌΠ°ΡΡΠ΅Ρ Π½Π° Π²ΡΠ΅ ΡΡΠΊΠΈ Π² ΠΌΠΈΡΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΌΡ ΠΏΠΎΠ΄ ΡΠΈΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ FrontEnd ΠΈ BackEnd ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Full-stack ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡΠΊΡ Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
06.11.2019 ΠΠ»Π°Π΄ Π‘Π²Π΅ΡΡΠΊΠΎΠ²
ΠΠ΅ΡΡΡΠΊΠ° ΡΠ°ΠΉΡΠΎΠ² ΠΈ Π²Π΅Π±-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π² ΠΌΠΈΡ IT. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠ³ΠΎΠΌ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΆΠ΅Π»Π°ΡΡΠΈΡ ΡΡΠ°ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΡΠΈΠΊΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π³ΠΎΠ΄ΠΎΠΌ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΡΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°ΠΌ.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
03.05.2019 Π Π΅Π΄Π°ΠΊΡΠΈΡ ITVDN
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠ°ΠΉΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΡΠ°Π½ΠΈΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ CMS ΠΎΠ½ΠΈ ΠΏΡΠΎΡΡΡ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΎΠΏΡΠΈΠΉ, Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠΈΡΠ΅.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
04.01.2019 Π‘ΠΎΡΠΈΡ ΠΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠΎΡΠΎΠ²Ρ Π»ΠΈ Π²Ρ ΠΊ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΉ Π² Π²Π°ΡΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² 2019 Π³ΠΎΠ΄Ρ? ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠ΅Π½Π΄Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΡΡΠΎΠΈΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ!
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
27.11.2018 Flavio Copes
ΠΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ Vue ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Vue. js ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
27.08.2018 Angular Guru
Angular — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΈ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π΅Π³ΠΎ ΡΠ°ΡΡΡ. ΠΠΎ Π·Π° ΡΡΠΈΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΡΡΠΊΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π±Ρ Π½Π°ΡΡ ΠΆΠΈΠ·Π½Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΎΠΊΠΎΠ»ΠΎ 12 ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠΈΡ Π² Angular, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈ Π½Π΅ ΡΠ»ΡΡΠ°ΡΡ.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
14.03.2018 Charles McCathie Nevile
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ W3C ΡΠΆΠ΅ Π²ΡΠΏΡΡΡΠΈΠ»ΠΎ ΡΠ΅Π»ΠΈΠ· 5.2. ΠΡΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡ HTML 5, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ΄Π΅Ρ ΡΡΠ°Π·Ρ Π·Π° HTML 5.1, ΡΠ²ΠΈΠ΄Π΅Π²ΡΠ΅Π³ΠΎ ΡΠ²Π΅Ρ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρ. Π 2014 Π³ΠΎΠ΄Ρ ΠΌΡ Π²ΡΡΠ°Π·ΠΈΠ»ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ Β«ΡΠ΅Π²ΠΈΠ·ΠΈΡΒ» HTML ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄. Π§ΡΠΎ ΠΆΠ΅, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π½Π°ΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΡΠ»ΡΡΠ°Π½ΠΎ.
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
31.01.2018 Π Π΅Π΄Π°ΠΊΡΠΈΡ ITVDN
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² Π½Π°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ±ΠΎΡΠ½ΠΈΠΊ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΎΡ Π²Π΅Π΄ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Node.JS! Π¦Π΅Π»Ρ ΡΠ΅ΠΉ ΡΡΠ°ΡΡΠΈ β ΠΎΠ±ΠΎΠ±ΡΠΈΡΡ Π²ΡΠ΅ ΡΠ΅ Π·Π½Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ ΠΈΠ»ΠΈ ΠΆΡΡΠ½Π°Π»Π°Ρ .
Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
17.01.2018 ΠΠΌΠΈΡΡΠΈΠΉ ΠΡ ΡΠΈΠΌΠ΅Π½ΠΊΠΎ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ AngularJS ΠΊ Angular 2 Π±ΡΠ» ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π²ΠΏΠ΅ΡΠ΅Π΄. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅, Π±Π΅Π· ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Angular 4 Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ»Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΉ Ρ Angular 2 (ΠΠ΅ΡΡΠΈΡ Angular 3 Π±ΡΠ»Π° ΠΏΡΠΎΠΏΡΡΠ΅Π½Π° ΠΈΠ·-Π·Π° @angular/router, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅Π»ΠΈΠ·Π° Π±ΡΠ» 3.x, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ 2.x. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΡΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ Π±ΡΠ»Π° ΠΏΡΠΎΠΏΡΡΠ΅Π½Π°). Angular 5 — ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ».
gulp-html-lint β ΠΠ½Π°Π»ΠΈΠ· ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² npm
ΠΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΏΡΡΠΌΡΡ ΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ.
Π£Π³ΡΠΎΠ·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ
ΠΡΠ΅ Π²Π΅ΡΡΠΈΠΈ
ΠΠ΅ΡΡΠΈΡ | Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ | ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠΉ ΡΠΈΡΠΊ | |||
---|---|---|---|---|---|
07/2017 | ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ |
|
|
ΠΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌ?
Π‘ΠΊΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΡΡΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Snyk Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ.
ΠΠ°ΡΠ½ΠΈΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ
ΠΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (179)
Π‘ΠΊΠ°ΡΠ°ΡΡ ΡΡΠ΅Π½Π΄
- ΠΠ²Π΅Π·Π΄Ρ GitHub
- 3
- ΠΠΈΠ»ΠΊΠΈ
- 4
- ΠΠ²ΡΠΎΡΡ
- 2
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΠΊΠ΅Ρ npm gulp-html-lint ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΎΠ±ΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ 179 Π·Π°Π³ΡΡΠ·ΠΎΠΊ Π² Π½Π΅Π΄Π΅Π»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ Π·Π°Π±ΠΈΠ»ΠΈ Π£ΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ gulp-html-lint Π±ΡΠ΄Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ GitHub Π΄Π»Ρ npm gulp-html-lint, ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΠΎΠ½ ΡΠ½ΡΠ»ΡΡ 3 ΡΠ°Π·Π°, ΠΈ ΡΡΠΎ 7 Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ.
ΠΠ°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠΈΠ΅ ΡΡΠ΅Π΄Π½ΠΈΠ΅ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ 12 ΠΌΠ΅ΡΡΡΠ΅Π², Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΎΡΠ΅ΠΊ Π΄Π°Π½Π½ΡΡ .
Π§Π°ΡΡΠΎΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ
ΠΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
- ΠΡΠΊΡΡΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
- 2
- ΠΡΠΊΡΡΡΡΠΉ Π·Π°ΠΊΠ°Π· Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΡ
- 2
- ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ
- 6 Π»Π΅Ρ Π½Π°Π·Π°Π΄
- ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
- 6 Π»Π΅Ρ Π½Π°Π·Π°Π΄
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ gulp-html-lint Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°Π΄Π΅Π½ΡΠΈΡ Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ npm, Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ, ΡΡΠΎ Π΅Π³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉ.
ΠΠ°ΠΆΠ½ΡΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ gulp-html-lint ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΎ Π½Π΅ Π²ΠΈΠ΄Π΅Π» Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ, Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ npm Π² Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 12 ΠΌΠ΅ΡΡΡΠ΅Π² ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΌΠ°Π»ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π΅Π³ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΡ .
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΡΡ ΠΌΡ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠ°ΡΡΡ issue Π±ΡΠ» ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ GitHub.
- Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Node.js
- >=5.0.0
- ΠΠΎΠ·ΡΠ°ΡΡ
- 7 Π»Π΅Ρ
- ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
- 3 ΠΏΡΡΠΌΡΡ
- ΠΠ΅ΡΡΠΈΠΈ
- 3
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ
- 0 Π
- Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈ
- 1
- ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²
- 0
- ΠΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»
- 1
- Π’ΠΈΠΏΡ TS
- ΠΠ΅Ρ
gulp-html-lint ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ΅Π³Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅Ρ Π½ΠΏΠΌ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π³ΠΈ. ΠΏΠ°ΠΊΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΄ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π±ΡΠ΄ΡΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠΈ, ΠΈΠ»ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ΅Π»ΠΈΠ·Ρ.
gulp-html-component β ΠΠ±Π·ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° NPM
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ HTML
ΠΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² HTML Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΡΠΎΡΡΠΎΠΉ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅Π»Π΅Π²ΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ HTML-ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ JavaScript Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° HTML-ΠΊΠΎΠ΄Π°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Ρ ΡΡΠ΅ΠΉ-ΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ:
npm install gulp-html-component
// ΠΈΠ»ΠΈ
ΠΏΡΡΠΆΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ gulp-html-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² gulp.task
const gulp = require("gulp")
const htmlComponent = require("gulp-html-component")
gulp.task("Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ-html", () => {
Π²Π΅ΡΠ½ΡΡΡ gulp. src("Π²Π°Ρ/ΠΏΡΡΡ")
.pipe(htmlΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ())
.pipe(gulp.dest("Π²Π°Ρ/ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅/ΠΏΡΡΡ"))
})
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
- Π€Π°ΠΉΠ» Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
/
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ CamelCase; - ΠΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π²
components/
; - ΠΠΎΠ½Π΅Ρ ΡΠ΅Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π°
/>
.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π² HTML-ΠΊΠΎΠ΄Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ, Π³Π΄Π΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ:
// Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΉΠ»Π°
+ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
+ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.html
- ΡΡΡΠ°Π½ΠΈΡΠ°.html
// ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ/Component.html <Π΄Π΅Π»> ΠΡΠΈΠ²Π΅Ρ ΠΌΠΈΡ