ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Javascript ΠΊΠΎΠ΄Π° ΠΈ CSS Ρ ΠΏΠΎΠΌΠΎΡΡΡ Microsoft Ajax Minifier / Habr
Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠΌΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ JavaScript ΡΠ°ΠΉΠ»Ρ ΠΈ CSS, Π²Π»ΠΈΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, Π½ΠΎ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°ΡΠΈΠΊ, ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ. ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠ°ΡΠΈΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΡΠ° Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³Π΅ Ρ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΡΠΌΠΎΠΌ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ .ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π±ΠΎΡΡΠ±Ρ Ρ Π»ΠΈΡΠ½ΠΈΠΌΠΈ Π±Π°ΠΉΡΠ°ΠΌΠΈ β ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° gzip’ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π½Π΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² Π΄Π°Π½Π½ΡΡ ΡΡΠ°ΡΡΡ. Π― Π±Ρ Ρ
ΠΎΡΠ΅Π» ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
Π½Π΅Π·Π½Π°ΡΠ°ΡΠΈΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ
Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²: JavaScript ΠΈ CSS β ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΡΠΈΠ»Π΅ΠΉ ΡΠ°ΠΉΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ/Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ±ΠΈΠ²ΠΊΡ ΡΡΡΠΎΠΊ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°Π±Π°ΠΌΠΈ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. Π£Π΄ΠΎΠ±Π½Π΅Π΅ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π²ΠΎΠ·Π½ΠΈΠΊΡΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ 100-Π° ΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΡΠ°Π²ΠΈΠ»Π° CSS ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ JavaScript Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ ΠΌΡ ΠΈΡ
Π²ΡΠ΅ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΡΡΠΊΠΈ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ Π»ΠΈΡΠ½ΠΈΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΉΡ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΡΠΎΡΡΠΎΡΡ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ β Π΄Π΅Π»ΠΎ Π½Π΅ ΠΈΠ· Π»ΡΠ³ΠΊΠΈΡ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ.
16-Π³ΠΎ ΡΠ΅Π²ΡΠ°Π»Ρ 2010-Π³ΠΎ Microsoft Π²ΡΠΏΡΡΡΠΈΠ»ΠΈ ΡΠ΅ΡΠ²ΡΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Microsoft Ajax Minifier, Π·Π°Π΄Π°ΡΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² JavaScript ΠΈ CSS β Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ. ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ .NET (Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² Π΄Π°Π½Π½ΡΡ ΡΡΠ°ΡΡΡ), ΡΠ°ΠΊ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ MSBuild ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π² Microsoft Visual Studio (Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Ρ VS 2008).
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Microsoft Ajax Minifier ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ MSBuild’Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ASP.NET Web Application. Π‘Π°ΠΉΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ Web site β Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ .proj ΡΠ°ΠΉΠ»ΠΎΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π·Π°Π΄Π°ΡΠΈ MSBuild’Π°.
- ΠΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ Unload Project Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΠΉΡΠ°.
- Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ ΠΎΡΠ³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΠ±ΡΠ°ΡΡ Edit project name; Visual Studio ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠ°ΠΉΠ» *.proj Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΡΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³Π° <Project>:
- <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks"/>
- <Target Name="AfterBuild">
- Β Β Β Β <ItemGroup>
- Β Β Β Β Β Β Β Β <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js"/>
- Β Β Β Β <ItemGroup>
- Β Β Β Β Β Β Β Β <CSS Include="**\*.css" Exclude="**\*.min.css"/>
- Β Β Β Β </ItemGroup>
- Β Β Β Β <AjaxMin
- Β Β Β Β Β Β Β Β JsSourceFiles="@(JS)"Β JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js"
- Β Β Β Β Β Β Β Β CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css"/>
- </Target>
- ΠΡΠ½ΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Reload Project β Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ ΡΠ°ΠΉΡ Π² Π»ΠΎΠ½ΠΎ Visual Studio ΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Build (ΠΈΠ»ΠΈ Rebuild) Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ.
- ΠΠ°ΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠ΄ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ, Π½Π΅ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡ (ΠΌΠ΅Π½Ρ Project, Show All Files).
- Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ Π½Π° Refresh ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈΠ½Π°ΡΠ΅ ΡΡΡΠ΄ΠΈΡ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠ΅ΠΉ MSBuild’Π°.
- ΠΡΠ»ΠΈ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π·Π°ΠΊΡΠ°Π»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠ° β ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΡΠ±ΠΎΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π»ΠΈ ΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡ β Π·Π° Π²Π°ΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠΏΠΈΡΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° FTP β ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΌΠ΅Π½Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ.
ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΡΠ·ΡΠΊΠΎΠΌ MSBuild’Π° β ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΏ. 3:
- ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
Π·Π°Π΄Π°Ρ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
Π²ΠΌΠ΅ΡΡΠ΅ Ρ Microsoft Ajax Minifier
<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks"/>
* This source code was highlighted with Source Code Highlighter.
- ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
<Target Name="AfterBuild">
* This source code was highlighted with Source Code Highlighter.
- <ItemGroup>
- Β Β <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js"/>
- </ItemGroup>
- <ItemGroup>
- Β Β <CSS Include="**\*.css" Exclude="**\*.min.css"/>
- </ItemGroup>
- ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΡΡΠΏΠΏΡ JavaScript ΠΈ CSS ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΡΡΠΎΠΊΠ°Ρ
(<JS> ΠΈ <CSS>). Π€Π°ΠΉΠ»Ρ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΎ-ΡΡΡΠ°ΠΌΠ±ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΠ°Π·Π°Π½Π½Ρ Π² Π°ΡΡΠΈΠ±ΡΡΠ°Ρ
JsSourceExtensionPattern, CssSourceExtensionPattern ΠΈ JsTargetExtension, CssTargetExtension, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css"/>
* This source code was highlighted with Source Code Highlighter.
ΠΠ°Π΄Π°ΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
JsCollapseToLiteral="true|false"
* This source code was highlighted with Source Code Highlighter.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ new Object() Π² {}, new Array() Π² [].JsCombineDuplicateLiterals="true|false"
* This source code was highlighted with Source Code Highlighter.
ΠΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΈΠ»ΠΈ ΡΠΈΡΡΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅.JsEvalTreatment="MakeAllSafe|Ignore|MakeImmediateSafe"
* This source code was highlighted with Source Code Highlighter.
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΊΠΎΠ΄Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΌ eval. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡΠΎΠ΄Π° ΠΊΠΎΠ΄Π° Π² eval Π½Π΅ ΡΡΠ½Π° ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ.JsIndentSize="number"
* This source code was highlighted with Source Code Highlighter.
ΠΠΎΠ³Π΄Π° JsOutputMode=Β«MultipleLinesΒ», ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² Π΄Π»Ρ ΠΎΡΠ±ΠΈΠ²ΠΊΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ.JsInlineSafeStrings="true|false"
* This source code was highlighted with Source Code Highlighter.
JsLocalRenaming="CrunchAll|KeepAll|KeepLocalizationVars"
* This source code was highlighted with Source Code Highlighter.
Π‘ΡΠ΅ΠΏΠ΅Π½Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠ³Π΄Π° JsLocalRenaming=Β«KeepLocalizationVarsΒ», ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ L_, Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ.JsMacSafariQuirks="true|false"
* This source code was highlighted with Source Code Highlighter.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π²ΠΈΠΆΠΊΠ° JavaScript Π² Safari ΠΏΠΎΠ΄ Mac.JsOutputMode="SingleLine|MultipleLines"
* This source code was highlighted with Source Code Highlighter.
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΡΠΎΡ ΡΠ°Π½ΡΡ Π½Π΅ΠΊΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ, Ρ ΠΎΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) β Π±ΡΠ΄ΡΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ.JsRemoveFunctionExpressionNames="true|false"
* This source code was highlighted with Source Code Highlighter.
JsRemoveUnneededCode="true|false"
* This source code was highlighted with Source Code Highlighter.
Π£Π±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (unreachable code).JsStripDebugStatements="true|false"
* This source code was highlighted with Source Code Highlighter.
ΠΠ·ΡΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ: debugger, $Debug, Debug, Web.Debug ΠΈΠ»ΠΈ Msn.Debug, WAssert.CssColorNames="Strict|Hex|Major"
* This source code was highlighted with Source Code Highlighter.
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ²Π΅ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ RGB ΠΊΠΎΠ΄Π°, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΡΠΎΡΠ΅ ( CssColorNames=Β«StrictΒ»).CssCommentMode="None|All|Hacks"
* This source code was highlighted with Source Code Highlighter.
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΡΡΡΡ CSS ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². CssCommentMode=Β«HacksΒ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΠ°Π²ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ CSS-Ρ Π°ΠΊΠΈ.CssExpandOutput="true|false"
* This source code was highlighted with Source Code Highlighter.
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΡΠΎΡ ΡΠ°Π½ΡΡ Π½Π΅ΠΊΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ, Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΉ.CssSeverity="number"
* This source code was highlighted with Source Code Highlighter.
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠΈ CSS Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ.CssTermSemicolons="true|false"
* This source code was highlighted with Source Code Highlighter.
Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ°Π²ΠΈΠ» CSS.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° β Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ Microsoft Ajax Minifier β ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ Π½Π° Π²ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π‘ΡΡΠ»ΠΊΠΈ:
- Π‘Π°ΠΉΡ Microsoft Ajax Minifier: http://aspnet.codeplex.com/releases/view/40584
- Π£ΡΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Microsoft Ajax Minifier: http://www.asp.net/ajaxlibrary/AjaxMinQuickStart.ashx
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°Π΄Π°ΡΠΈ MSBuild’Π° Π΄Π»Ρ Microsoft Ajax Minifier: http://www.asp.net/ajaxLibrary/AjaxMinTask.ashx
Π ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ Ρ ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΎΡ Microsoft β Microsoft Ajax Library, Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ JavaScript, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ CSS ΠΈ JavaScript Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΡΠ°
ΠΡ Π°Π²ΡΠΎΡΠ°: Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ CSS ΠΈ JavaScript? ΠΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-Π±ΠΈΠ·Π½Π΅ΡΠ°, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ. ΠΠ΅Π²Π°ΠΆΠ½ΠΎ, Π²Π΅Π΄Π΅ΡΠ΅ Π»ΠΈ Π²Ρ Π½ΠΈΡΠ΅Π²ΡΠΉ Π±Π»ΠΎΠ³, SaaS ΡΠ°ΠΉΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΠ΅ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ, Π½Π΅ Π½Π°Π΄Π΅ΠΉΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΡΠΏΡΡ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, Π»ΡΠ±ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΎΠΏΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΡΠ°ΠΉΡΠΎΠΌ, ΠΎΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΎΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠ²ΡΡ
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΡΡΠΎ ΡΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· Π²ΠΈΠ΄Ρ.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π²ΠΎΡΡΠΌΠΈ Π΄ΠΎ Π΄Π²ΡΡ ΡΠ΅ΠΊΡΠ½Π΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎ 74 ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ². ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠΈΡΡ Π²Π°ΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠΎΠ»Π½Π°Ρ ΠΊΠ°ΡΡΠΈΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ PageSpeed Insights
Π§ΡΠΎΠ±Ρ Π²ΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Google PageSpeed Insights. ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ°Π½ΠΈΡΡΠ΅Ρ ΠΈ ΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ½ΡΡ, ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΉΡΠ°.
JavaScript. ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
ΠΠ·ΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ JavaScript Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π£Π·Π½Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ΠΡΠΎΠΌΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², PageSpeed Insights ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ. ΠΠ»Π°Π΄Π΅Π»ΡΡΡ ΡΠ°ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈΡΡ ΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ CSS ΠΈ JavaScript Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ Π²Π°Ρ ΡΠ°ΠΉΡ. Π₯ΠΎΡΡ ΡΡΠΎ ΠΈ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΡ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π·Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ CSS ΠΈ JavaScript ΡΠ΅ΡΡΡΡΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ
ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π³ΠΎΠ², Π½ΠΎ, Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΡΠΈ Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΡΠ°ΡΡΠΈΠΊ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ PageSpeed Insights Π²Ρ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΡΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎΡΡΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΡΡΡΠ»ΠΊΡ Β«ΠΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡΒ» ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ (CMS) ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· FTP.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° WordPress, ΡΠΎΠ³Π΄Π° Π²Π΅ΡΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π Π΅Π΄Π°ΠΊΡΠΎΡΒ». ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄Β» ΠΏΠ°Π½Π΅Π»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΡΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠ° ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠ°ΠΌΡΠΉ Π»Π΅Π³ΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ β ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ CSS ΠΈ JavaScript, ΡΠΎ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΡΡΡΡ CSS Minifier ΠΈ JSCompress.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CSS Minifier
CSS Minifier β ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ CSS-ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π·Π°Π΄Π°ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β«MinifyΒ».
ΠΡΠΎΡΠ΅ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎ ΠΌΠΈΠ½ΡΡΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ CMS ΠΈΠ»ΠΈ FTP.
ΠΠ°ΠΆΠ½ΠΎ: Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Π½ΠΎΡΠΈΡΡ Π² Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ»Π°ΠΉΠ½ ΠΊΠΎΠΏΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠ°Π±ΠΎΡΠ°Π»Π° Π»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΡ ΡΠ΅ΡΠ΅Π· PageSpeed Insights. CSS ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ» ΡΠΆΠ°Ρ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ CSSΒ».
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ JavaScript
Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ CSS, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ JavaScript Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ΅Π· JSCompress, Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉΒ», Π½ΠΎ, Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ JavaScript, ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Π§ΡΠΎΠ±Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠ³ async Π² ΠΊΠΎΠ΄ Π²ΡΠ·ΠΎΠ²Π° .js-ΡΠ°ΠΉΠ»Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ HTML-ΠΊΠΎΠ΄Π΅ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
<script src=»yourscript.js» async></script>
<script src=»yourscript.js» async></script> |
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅.
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ JavaScript-ΡΠ°ΠΉΠ»ΠΎΠ²
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»ΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ JavaScript, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΡΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ .js ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅:
JavaScript. ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
ΠΠ·ΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ JavaScript Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π£Π·Π½Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅<script src=»http://www.yoursite.com/menu.js»></script> <script src=»http://www.yoursite.com/tools.js»></script> <script src=»http://www.yoursite.com/footer.js»></script>
<script src=»http://www.yoursite.com/menu.js»></script> <script src=»http://www.yoursite.com/tools.js»></script> <script src=»http://www.yoursite.com/footer.js»></script> |
ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ JavaScript-ΡΠ°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ΄Π°, ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π²ΡΠ΅ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·:
<script src=»http://www.yoursite.com/all.js»></script>
<script src=»http://www.yoursite.com/all.js»></script> |
Π§ΡΠΎΠ±Ρ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠ³ΠΈ http ΠΈ type. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ:
<script src=»http://www.yoursite.com/all.js» type=»text/javascript»></script>
<script src=»http://www.yoursite.com/all.js» type=»text/javascript»></script> |
ΠΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅:
<script src=»//www.yoursite.com/all.js»></script>
<script src=»//www.yoursite.com/all.js»></script> |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ JSCompress
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, JSCompress ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ CSS Minifier. ΠΡΠΎΡΡΠΎ Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΡΡΡ Π²Π²ΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Β«Compress JavaScriptΒ».
ΠΠ°Π»ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«OutputΒ», ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΆΠ°ΡΡΠΉ JavaScript:
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
Π‘Π»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈ ΠΊΠΎΠ΄ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ.
ΠΠ°ΠΉΡΠΈ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π² Google Chrome. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, Π²ΡΠ±ΡΠ°ΡΡ Β«ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΒ» ΠΈ Π·Π°ΡΠ΅ΠΌ Β«ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²Β».
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΉΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° Β«CoverageΒ» Π² ΠΏΠΎΠ΄ΡΠ΅ΠΊΡΠΈΠΈ Β«More ToolsΒ» ΠΌΠ΅Π½Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ.
Π’Π°ΠΊ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΡ Β«CoverageΒ» Π² Developer Console. ΠΠ°Π»ΡΡΠ΅ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° Β«Instrument CoverageΒ», ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΡΡΠΎΠ² Ρ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π±ΠΈΡΠ°Ρ . ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π° Π² ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ»Π±ΡΠΎΠ²ΠΎΠΌ ΠΎΡΡΠ΅ΡΠ΅ Ρ ΡΠ²Π΅ΡΠΎΠ²ΡΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·, ΡΠΎ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² CSS ΠΈ JavaScript. ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ½ΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π»ΠΈΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π° ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π»ΡΡΡΠΈΠΉ ΠΎΠΏΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅Π±Π΅, ΠΊΠΎΠ³Π΄Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π· Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΡΠΈΡΡΠΈΡΡ ΡΠ΅ΡΡΡΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎΡΠ΅ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ CSS ΠΈ JavaScript ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ. ΠΠΎ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ web host, ΡΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ.
ΠΠ²ΡΠΎΡ: Gary Stevens
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.sitepoint.com/
Π Π΅Π΄Π°ΠΊΡΠΈΡ: ΠΠΎΠΌΠ°Π½Π΄Π° webformyself.
JavaScript. ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
ΠΠ·ΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ JavaScript Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π£Π·Π½Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ΠΠ΅ΡΡΡΠΊΠ°-ΠΠ°ΡΡΠ΅Ρ. ΠΡ ΡΠ΅ΠΎΡΠΈΠΈ Π΄ΠΎ Π²Π΅ΡΡΡΠΊΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²
ΠΠ·ΡΡΠΈΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΡΠΊΡ ΡΠ°ΠΉΡΠΎΠ² Ρ Π½ΡΠ»Ρ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ CSS ΠΈ Javascript Π² Website ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ASP.NET / Habr
ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ javascript ΠΈ css Π·Π½Π°ΡΡ Π²ΡΠ΅. ΠΡ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΠΎ, Π²ΠΊΡΠ°ΡΡΠ΅, ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π° ΡΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠ² ΡΡΡΠΎΠΊ ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½ΠΎ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ°ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΆΠ΅ Π²ΠΈΠ·ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠ°Π΄ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. ΠΠΎ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΠΈΠ·ΠΎ Π΄Π½Ρ Π² Π΄Π΅Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈΡΡ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠΎΠΊΠ° Π½Π΅ ΡΡΠ°Π»ΠΈ ΠΏΠ»ΠΎΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ExtJS.Π‘ΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠΊΠ° ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ ΠΈ ΡΡΠΈΠ»ΡΠΌΠΈ Π²Π΅ΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ 5 ΠΠ± (ΠΎΠΊΠΎΠ»ΠΎ 200 ΡΠ°ΠΉΠ»ΠΎΠ²). ΠΠ΄Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ DOM-Π΄Π΅ΡΠ΅Π²ΠΎ Π² ΠΊΠΎΠ΄Π΅ HTML ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»Π΅Π΅ 500 000 Π±Π°ΠΉΡ. Π Π°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ°ΡΡ Π½Π΅ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· 5 ΡΠ΅ΠΊΡΠ½Π΄ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ExtJS ΠΈ Ρ.ΠΏ.).
ΠΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° ΠΈ ΡΠ°ΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ (Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΆΠ΅ Π±ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅), ΠΈΠ½ΠΎΠ³Π΄Π° Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ExtJS Π² IE8.
ΠΠ»Ρ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ½Π°ΡΠ°Π»Π° ΡΠΊΠ°ΡΠ°Π» Google Closure Compiler, ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ , Π΄Π° ΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΡ Π΄ΠΎΠ±ΡΠ° ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅Ρβ¦
Google Closure Compiler
ΠΠΎΠ»ΠΎΠΆΠΈΠ» ΡΠ°ΠΉΠ»ΠΈΠΊ compressor.jar Π² ΠΏΠ°ΠΏΠΊΡ ΡΠΎ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ. Π§ΡΠΎΠ±Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ java. Π‘Π΄Π΅Π»Π°Π» bat-ΡΠ°ΠΉΠ»ΠΈΠΊ Π·Π°ΠΏΡΡΠΊΠ° Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄Π΅Π»Π°Π΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π² 10 ΡΠ΅ΠΊΡΠ½Π΄, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠ°ΠΌΠΎΠΌΡ Π·Π°ΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΎΡ ΡΠ°ΠΊΠΈΠΌ Π²ΠΎΡ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ»ΠΈΠ» Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», Π²Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² ΠΏΠΎΠ»ΡΠΎΡΠ° ΡΠ°Π·Π° (ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ bat-ΡΠ°ΠΉΠ»Π°):
cd %0\..\
java -jar compiler.jar --js=NavigationJS.js --js=SSSC.js (Π·Π΄Π΅ΡΡ Π΅ΡΠ΅ ΠΊΡΡΠ° ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ) --js_output_file=bcr_master.min.js
ping -n 1 -w 100000 192.168.254.254 >nul
ΠΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎ, ΠΏΡΠΎΠ²ΠΎΠ·ΠΈΠ»ΡΡ ΠΌΠΈΠ½ΡΡ ΠΏΡΡΡ. ΠΠΎΠΌΠ°Π½Π΄Π° cd %0\..\ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° Π½ΡΠΆΠ½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π²Π½ΡΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΠ°ΠΌ .bat ΡΠ°ΠΉΠ», Π° Π½Π΅ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎ ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈΠ΄Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ JS, Π½ΠΎ ΠΈ CSS ΡΠ°ΠΉΠ»Ρ, Π° Google Closure ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΠ²Ρ, Π½Π΅ ΡΠΌΠ΅Π΅Ρ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΠΈΠ» ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ Π½Π° YUI Compressor, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ·ΡΠ²ΠΎΠ², ΠΈ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠΆΠΈΠΌΠ°Π΅Ρ CSS.
YUI Compressor
ΠΠ»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π±Π°ΡΠ½ΠΈΠΊ ΡΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎΡ YUI Π½Π΅ ΡΠΌΠ΅Π΅Ρ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΡΡΡΠΎΠΊΠ΅ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² β Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠΌΠ»ΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ. Π Π·Π½Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ»Π΅ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΎΠ΄ΠΈΠ½ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ copy, Π° ΡΠΆΠ΅ ΠΏΠΎΡΠΎΠΌ Π΅Π³ΠΎ ΡΠΆΠ°ΡΡ ΡΠ°ΠΉ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡΠΎΠΌ.
ΠΡΡΠ°ΡΠΈ, Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ β Π²ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ javascript Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ, Π° Π»ΡΡΡΠ΅ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ Π½Π° ΡΠ»Π΅Π΄.ΡΡΡΠΎΠΊΡ. ΠΠΎΠΎΠ±ΡΠ΅ Π»ΡΠ±ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΈ ΡΠ΅ΡΠ°ΡΠΏΠ΅Ρ Π»ΡΡΠΎ Π½Π΅Π³ΠΎΠ΄ΡΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΈΡ Π½Π°Ρ javascript.
cd %0\..\
copy /b .\..\..\Scripts\JSON.js + (Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ²) + Bids.js combined.js
java -jar yuicompressor-2.4.8.jar combined.js --type js -o combined.min.js --charset cp-1251
copy /b combined.min.js + (Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ²) + .\..\..\Scripts\jquery\plugins.fileupload.min.js mbcrfull.min.js
del combined.min.js
del combined.js
::copy /b .\..\..\Styles\MPMessage.css + (Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ²) + .\..\..\BCR\Styles\Kondor.css combined1.css
::java -jar yuicompressor-2.4.8.jar combined1.css -o .\..\..\BCR\Styles\mbcrfull.min.css --charset cp-1251
::del combined1.css
::copy /b .\..\..\Styles\jquery\ui.all.css + (Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ²) + .\..\..\Styles\jquery\jqueryslidemenu.css combined2.css
::java -jar yuicompressor-2.4.8.jar combined2.css -o .\..\..\Styles\jquery\mbcrfull.min.css --charset cp-1251
::del combined2.css
::ping -n 1 -w 10000 192.168.254.254 >nul
Π’Π°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡΠ° Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΡΠΎΠΊΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ CSS Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΡΠΈΠ»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ CSS Π΅ΡΡΡ ΠΌΠ°ΡΡΠ° ΡΠΎΠ½ΠΊΠΎΡΡΠ΅ΠΉ, Π° ΡΠ»ΠΈΠ²Π°ΡΡ ΠΈΡ
Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» β Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΠΈΠ· Π»Π΅Π³ΠΊΠΈΡ
:
- ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ. Π‘ΡΠΈΠ»ΠΈ ExtJS ΠΈ Π΄ΡΡΠ³ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΡΡΡ , Π° Π·Π½Π°ΡΠΈΡ ΠΎΠ½ΠΈ ΡΡΠ°Π·Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (ΠΊΡΡΠ°ΡΠΈ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠ½ΠΈ ΡΠΆΠ΅ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ).
- ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π² CSS ΡΠ°ΠΉΠ»Π°Ρ
ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
@import
. ΠΡΠΎ Π°Π΄. - Π ΡΡΠ΅ΡΡΠΈΡ , ΠΌΠΎΠΆΠ½ΠΎ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ, Π½ΠΎ, ΠΊΠ°ΠΊ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ CSS ΠΏΠΎΠΊΠ° ΠΎΡΠ»ΠΎΠΆΠΈΡΡ. (ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈ Π½Π° Google Closure Compiler ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅)
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ β Π±Π°ΡΠ½ΠΈΠΊ Ρ Π½Π°Ρ Π΅ΡΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΈΡ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² ΡΠ΅Π»ΠΈΠ·Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ΅ Π²ΡΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡβ¦. ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΠΊΡΠΈΠΏΡ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π² ΡΠ΅Π»ΠΈΠ·
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΄Π²Π΅ Π²Π΅ΡΠΊΠΈ Π² SVN β ΡΠ°Π±ΠΎΡΠ°Ρ (DEV) ΠΈ ΡΠ΅Π»ΠΈΠ·Π½Π°Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ merge Π²ΡΠ΅Ρ (Π½Ρ ΠΈΠ»ΠΈ Π½ΡΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π±ΠΈΠ»Π΄ΠΈΠΌ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ (Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ) ΠΊΠΎΠΌΠΌΠΈΡΠΈΠΌ. Π Π½Π°Π΄ΠΎ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π΅ Π·Π°Π±ΡΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΎΡ Π±Π°ΡΠ½ΠΈΠΊ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π² ΡΠ΅Π»ΠΈΠ·, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π²ΡΠ΅ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡΠ²Π°Π»ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ.
Π ΡΡΡ Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Hook Scripts Π² TortoiseSVN!
Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° SVN Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Hook Scripts ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΌ ΠΏΠ°ΠΏΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ°ΠΌ Π±Π°ΡΠ½ΠΈΠΊ. Π ΠΎΠΏΡΠΈΡΡ Hook Type Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Β«Start-Commit HookΒ«, ΡΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΡΠ°Π»Ρ, Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π½Π΅ Π½Π°Π΄ΠΎ Π½ΠΈ Π·Π° ΠΊΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΈΡΡ!
ΠΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΡΡΠ° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² visual studio ΡΡΠ΅Π΄ΡΡΠ² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΈΡ ΡΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, Π° Π΅ΡΠ΅ Π² Π½ΠΈΡ ΡΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠ½ΠΊΠΎΡΡΠ΅ΠΉ. ΠΠΎ ΡΡΠΎΠ³ΠΎ Ρ Π½Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Composite Scripts, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ YUI ΠΈΠ»ΠΈ Google closure Compiler.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Javascript Ρ ΠΏΠΎΠΌΠΎΡΡΡ Google Closure Compiler / Habr
Google ΠΎΡΠΊΡΡΠ»Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΊΠ°ΠΊ Google Docs, Google Maps ΠΈ GMail.
Π ΡΠΈΡΠ»Π΅ ΡΡΠΈΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΡΡΠΊΠ°, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Google Closure Compiler. ΠΠ°Π½Π½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ javascript-ΠΊΠΎΠ΄, Π·Π° ΡΡΠ΅Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅.
Β«ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ closure-compiler.googlecode.com/files/compiler-latest.zip (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 3ΠΠ±), Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ closure-compiler.appspot.com.
ΠΠ΅ΡΠ΅Π΄ ΠΠ°ΠΌΠΈ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° 2 ΡΠ°ΡΡΠΈ: ΡΠ»Π΅Π²Π° ΠΡ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, Π° ΡΠΏΡΠ°Π²Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΌ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Hello World
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«CompileΒ» Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠΈΡΡΠ½ΠΊΠ°, ΡΡΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Β«ΡΠΆΠ°Π»ΡΡΒ» Π½Π° 40.22%.
ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠΆΠ°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«resetΒ», Π² ΠΏΠΎΠ»Π΅ Β«Add a URLΒ» Π²Π²ΠΎΠ΄ΠΈΠΌ Β«habrahabr.ru/js/1257170514/tm/validation.js?revision=29Β» ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«AddΒ» ΠΈ Β«CompileΒ»
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Β«ΡΠΆΠ°Π»ΡΡΒ» Π½Π° 68.40%. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΠΎΠ»Π΅ Β«Add a URLΒ» Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠΆΠΈΠΌΠ°ΡΡΡΡ.
Π‘Π΅ΠΉΡΠ°Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠΎΠ² javascript ΠΊΠΎΠ΄ΠΎΠ², Π½ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Closure Compile ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ javascript Π»ΡΡΡΠ΅.
Π’Π°ΠΊΠΆΠ΅ Google ΠΎΡΠΊΡΡΠ» ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π΅ΡΡ Π΄Π²ΡΡ
ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²:
Closure Library ΠΈ Closure Templates
javascript — ΠΊΠ°ΠΊ ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ JS ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ρ ΡΡΠΊΠ°ΡΡ-Π²Π½ΠΎ-ΡΡΠΎΠ΄ΠΎΠ²Π°ΡΡ?
Π₯ΠΎΡΠΎΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ!
1) ΡΡΠΎΠ΄ΠΎΠ²Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ , ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° Π΄Π½Π΅ , Π½ΠΎ ΡΡΠΎ , ΠΊΠ°ΠΆΠ΅ΡΡΡ , ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠ°Π·Π½Π΅ΠΉ.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ JQuery ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄ΡΡ Π²Π²Π΅Π΄Π΅Π½Ρ ΠΏΠ΅ΡΠ²ΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Jquery ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΠΎΠ΄ΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Gruntfile.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³:
uglify: {
options: {
sourceMap: true
},
build: {
files: {
'public/all.min.js': ['public/js/vendor/jquery-1.10.2.min.js', 'public/js/*.js'],
}
}
}
2) Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Π±-ΡΠ°ΠΌΠΊΠΈ, ΡΠ°ΠΌΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΡΠΏΡΠ΅ΡΡ + Π½Π΅ΡΡΠΈΡ ΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΌΠ°ΠΊΠ΅ΡΠ΅ Π½Π΅ΡΡΠΈΡΠ° Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ:
if process.env.NODE_ENV === 'production'
script(src='/all.min.js')
else
script(src='/js/vendor/jquery-1.10.2.min.js')
script(src='/js/someScript.js')
script(src='/js/otherScript.js')
Π ΠΌΠΎΠ΅ΠΉ package.json Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ:
"scripts": {
"postinstall": "grunt"
},
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ , ΡΡΠΎ , ΠΊΠΎΠ³Π΄Π° Ρ Π±Π΅Π³Ρ npm install
Π½Π° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ (Π½Π° Heroku) Ρ
ΡΡΠΊΠ°ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ / Concat ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ NODE_ENV=production
ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Javascript ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎ Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»ΡΠΆΠΈΠ» ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° JavaScripts Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ²Π΅ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ²Π»ΡΡΡΡΡ:
- Π― Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΡΠΆΠ°ΡΡ Π΄Π²Π° ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π² ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ (Π² Gruntfile ΠΈ Π² layout.js) Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
*.js
Π² Gruntfile , Π½ΠΎ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ JavaScripts Π² Gruntfile ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΡΠΈΡ-ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠ· ΡΡΠΎΠ³ΠΎ , Π½ΠΎ ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΠ·Π»ΠΈΡΠ½ΠΈΠΌ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². - ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠ΅ΠΌΡ Grunt ΠΊΠΎΠ½ΡΠΈΠ³Π° Π²Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
NODE_ENV=production
Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ , ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ , ΡΡΠΎ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΠ°ΠΊ , ΠΊΠ°ΠΊ Π²Ρ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈ.