- ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎ ΠΠΠ, ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Π²Β pug,Β ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ Sass. Π‘ΠΌ. ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΒ CSS-ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ ΠΈΒ ΠΠΠ.
- ΠΠ°ΠΆΠ΄ΡΠΉ ΠΠΠ-Π±Π»ΠΎΠΊ Π²Β ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π²Π½ΡΡΡΠΈ
src/blocks/
. ΠΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² Π²Β ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΡΒ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π±Π»ΠΎΠΊΠ°. Π‘ΠΌ. Π½ΠΈΠΆΠ΅ ΠΏΡΠΎ ΠΠ»ΠΎΠΊΠΈ. - ΠΡΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π²Β ΡΠ±ΠΎΡΠΊΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ
Π² ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ Π±Π»ΠΎΠΊΠΎΠ². Π‘ΠΌΠΎΡΡΠΈΒ
config.js
. - ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ:
src/js/script.js
β ΠΎΠ±ΡΠΈΠΉ js, Π±Π΅ΡΡΡΡΡ Π² ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ,src/scss/print.scss
β ΡΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ°ΡΠΈ, Π½Π΅ Π±Π΅ΡΡΡΡΡ Π² ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΡΠΌ.config.js
).
- Π‘ΠΏΠΈΡΠΎΠΊ pug-ΠΏΡΠΈΠΌΠ΅ΡΠ΅ΠΉ
src/pug/mixins.pug
Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΒ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡinclude
ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ pug-ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΡΠ΅Ρ Β Π±Π»ΠΎΠΊΠΎΠ². - ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ
src/scss/style.scss
Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΒ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΠΏΠΎΡΡΡ ΡΡΠΈΠ»Π΅Π²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π²Β ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΒ ΠΈΠΌΠΏΠΎΡΡΡ Π΄ΠΎΠΏ. ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²config.js
. - ΠΡ
ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ js (
src/js/entry.js
) Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΒ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡrequire
js-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π²Β ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΒ Π΄ΠΎΠΏ. ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²config.js
. - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄Π³Π°ΠΉΠ΄ (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΆΡΡΡΠΊΠΈΠΉ), Π΅Π³ΠΎΒ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΠΈΠ»ΠΈΒ Π²ΡΡΡΠ½ΡΡ (
npm run test
), ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π²Β ΡΠ΅ΡΠΌΠΈΠ½Π°Π». - ΠΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°:
node createBlock.js new-block
(ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ scss-ΡΠ°ΠΉΠ»). ΠΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ.
Π’ΡΠ΅Π±ΡΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ git ΠΈ Node.js (LTS).
- ΠΡΠΊΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
git clone https://github.com/nicothin/NTH-start-project.git my-new-project
(Π³Π΄Π΅my-new-project
β ΠΏΠ°ΠΏΠΊΠ° Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°). - ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ β
cd my-new-project
). - Π£Π΄Π°Π»ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
rm -rf .git
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
npm i
(ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ»Π³ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° Windows).
npm start # Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ΡΠ±ΠΎΡΠΊΠ° ΠΠΠ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ²)
npm start deploy # ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΏΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π½Π°Β gh-pages (Π½ΡΠΆΠ΅Π½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π°Β github.com)
npm run build # ΡΠ±ΠΎΡΠΊΠ° ΠΠΠ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
npm run wlib # Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π±Π»ΠΎΠΊΠΎΠ²)
npm run test # ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠ΅Ρ
pug-, scss- ΠΈ js-ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ (ΡΠΌ. .pug-lintrc, .stylelintrc ΠΈΒ eslintrc ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ)
npm run test:pug # ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ pug-ΡΠ°ΠΉΠ»Ρ
npm run test:style # ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ scss-ΡΠ°ΠΉΠ»Ρ
npm run test:js # ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ js-ΡΠ°ΠΉΠ»Ρ
build/ # ΠΠ°ΠΏΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ (ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ)
src/ # ΠΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ
blocks/ # ΠΠ»ΠΎΠΊΠΈ (ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ)
favicon/ # Π€Π°Π²ΠΈΠΊΠΎΠ½ΠΊΠΈ (ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² config.js)
fonts/ # Π¨ΡΠΈΡΡΡ (ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² config.js, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² src/blocks/page/page.scss)
img/ # ΠΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² config.js)
js/ # ΠΠ±ΡΠΈΠ΅ js-ΡΠ°ΠΉΠ»Ρ, Π² Ρ.Ρ. ΡΠΎΡΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ webpack ΠΈ ΠΎΠ±ΡΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ
pages/ # Π‘ΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ: src/pages/index.pug β build/index.html)
pug/ # Π‘Π»ΡΠΆΠ΅Π±Π½ΡΠ΅ pug-ΡΠ°ΠΉΠ»Ρ (ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΡΡΠ°Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅ΡΠΈ)
scss/ # Π‘Π»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΡΠΈΠ»Π΅Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΏΡΠΈΠΌΠ΅ΡΠΈ)
ΠΡΠΈ npm start
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° gulp:
- ΠΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ (
build/
). - ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ»
src/pug/mixins.pug
Ρ includ-Π°ΠΌΠΈ pug-ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΡΠ΅Ρ Π±Π»ΠΎΠΊΠΎΠ². - ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΡΡΡΠ°Π½ΠΈΡ (ΠΈΠ·
src/pages/**/*.pug
Π²build/*.html
). - ΠΠ· ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ html-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ Π²ΡΠ΅Β ΠΊΠ»Π°ΡΡΡ ΡΡΠΎΠ²Π½Ρ ΠΠΠ-Π±Π»ΠΎΠΊΠ°. ΠΠ°Β ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎΒ ΡΠΏΠΈΡΠΊΠ° Π±ΡΠ΄ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈΒ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ js-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠ΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΡΠΏΡΠ°ΠΉΡΡ (Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ ΡΠΏΡΠ°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ), Π²Β ΠΏΠ°ΠΏΠΊΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΒ Π΄ΠΎΠΏ.Β ΡΠ°ΠΉΠ»Ρ ΠΈΠ·Β ΡΠ΅ΠΊΡΠΈΠΈ
addAssets
ΡΠ°ΠΉΠ»Π°config.js
. - ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ
src/scss/style.scss
, Π²Β ΠΊΠΎΡΠΎΡΠΎΠΌ:- ΠΠΌΠΏΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ
addStyleBefore
ΡΠ°ΠΉΠ»Π°config.js
. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β SCSS-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΒ ΠΏΡΠΈΠΌΠ΅ΡΠΈ. - ΠΠΌΠΏΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΠΠ-Π±Π»ΠΎΠΊΠΎΠ², ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ
Π²Β ΡΠ΅ΠΊΡΠΈΠΈ
alwaysAddBlocks
ΡΠ°ΠΉΠ»Π°config.js
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π²Β ΡΠ±ΠΎΡΠΊΡ Π»ΡΠ±ΠΎΠΉ Π±Π»ΠΎΠΊ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΅Π³ΠΎΒ css-ΠΊΠ»Π°ΡΡ Π½Π΅Β ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π²Β ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡ. - ΠΠΌΠΏΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΠΠ-Π±Π»ΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ Π²Β ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅.
- ΠΠΌΠΏΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·Β ΡΠ΅ΠΊΡΠΈΠΈ
addStyleAfter
ΡΠ°ΠΉΠ»Π°config.js
.
- ΠΠΌΠΏΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ
- ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π²Ρ
ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²
src/js/entry.js
, Π²Β ΠΊΠΎΡΠΎΡΠΎΠΉ:require
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·Β ΡΠ΅ΠΊΡΠΈΠΈaddJsBefore
ΡΠ°ΠΉΠ»Π°config.js
.require
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΠΠ-Π±Π»ΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ Π²Β ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅.require
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΠΠ-Π±Π»ΠΎΠΊΠΎΠ², ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ Π²Β ΡΠ΅ΠΊΡΠΈΠΈalwaysAddBlocks
ΡΠ°ΠΉΠ»Π°config.js
.require
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·Β ΡΠ΅ΠΊΡΠΈΠΈaddJsAfter
ΡΠ°ΠΉΠ»Π°config.js
.
- ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ (
src/scss/style.scss
). Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ PostCSS. - ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π²Ρ
ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° Javascript (
src/js/entry.js
). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Webpack. - ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΒ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Β ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π»Π΅ΠΆΠΈΡ Π²Β src/blocks/
Π²Β ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±Π»ΠΎΠΊΠ°:
demo-block/ # ΠΠ°ΠΏΠΊΠ° Π±Π»ΠΎΠΊΠ°.
img/ # ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ (ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΡ ΡΠ±ΠΎΡΠΊΠΈ).
demo-block.pug # Π Π°Π·ΠΌΠ΅ΡΠΊΠ° (pug-ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΎΡΠ΄Π°ΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ API ΠΏΡΠΈΠΌΠ΅ΡΠΈ).
demo-block.scss # Π‘ΡΠΈΠ»Π΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (Π±Π΅Π· ΡΡΠΈΠ»Π΅ΠΉ Π΄ΡΡΠ³ΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ²).
demo-block.js # js-ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠ° (Π±Π΅Π· ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄ΡΡΠ³ΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ²).
readme.md # ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ.
ΠΠ° ΡΠ΅Π³Π΅ <html>
ΠΏΠΎΒ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠΏΠΈΡΠ°Π½ ΠΊΠ»Π°ΡΡ page
, ΡΡΠΎΒ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠΈΠΌΡΠ½Π½ΡΠΉ Π±Π»ΠΎΠΊ Β«Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΒ». Π ΡΡΠΈΠ»ΡΡ
ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ:
- ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΡΠΈΡΡΠΎΠ²,
- ΡΠΌΠ΅Π½Π° Π±ΠΎΠΊΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ,
- cΡΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° (ΡΠΌ.
src/pug/layout.pug
), - ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π³ΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π°Π½Π°Π»ΠΎΠ³ Normalize.CSS).
# ΡΠΎΡΠΌΠ°Ρ: node createBlock.js ΠΠΠ―ΠΠΠΠΠ [Π΄ΠΎΠΏ. ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π»]
node createBlock.js demo-block # ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ Π±Π»ΠΎΠΊΠ°, demo-block.scss, ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ img/ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°
node createBlock.js demo-block pug js # ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ Π±Π»ΠΎΠΊΠ°, demo-block.scss, demo-block.pug, demo-block.js, ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ img/ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°
ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊ ΡΠΆΠ΅Β ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠ°ΠΉΠ»Ρ Π½Π΅Β Π±ΡΠ΄ΡΡ Π·Π°ΡΡΡΡΡ, Π½ΠΎΒ ΡΠΎΠ·Π΄Π°Π΄ΡΡΡΡ ΡΠ΅Β ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡ Π½Π΅Β ΡΡΡΠ΅ΡΡΠ²ΡΡΡ.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π² ΡΠ±ΠΎΡΠΊΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ β npm i package-name
) Π½ΡΠΆΠ½ΠΎ:
- ΠΡΠΎΠΏΠΈΡΠ°ΡΡ
require
Π² js-ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (ΡΠ°ΠΌ ΠΆΠ΅ ΠΏΠΈΡΠ°ΡΡ Π²ΡΡ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΒ ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ). ΠΡΠ»ΠΈΒ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½ΡΠΆΠ΅Π½ Π±Π΅Π·Β ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊΒ ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌΡ Π±Π»ΠΎΠΊΡ, ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡrequire
Π²Βsrc/js/script.js
(ΡΠΌ.Β ΠΏΡΠΈΠΌΠ΅Ρ Π²Β ΡΠ°ΠΉΠ»Π΅). - ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ°ΡΡ Π²Β ΡΠ±ΠΎΡΠΊΡ ΡΡΠΈΠ»Π΅Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΡ
Β Π²Β ΡΠ΅ΠΊΡΠΈΠΈ
addStyleBefore
ΡΠ°ΠΉΠ»Π°Βconfig.js
(ΠΏΡΠΈΠΌΠ΅Ρ Π²Β ΡΠ°ΠΉΠ»Π΅). - ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ°ΡΡ Π²Β ΡΠ±ΠΎΡΠΊΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΡ
Π²Β
addAssets
ΡΠ°ΠΉΠ»Π°config.js
ΡΒ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Β ΠΊΠ°ΠΊΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈΡ Β ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ (ΠΏΡΠΈΠΌΠ΅Ρ Π²Β ΡΠ°ΠΉΠ»Π΅).
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ pug.
ΠΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ (ΡΠΌ.Β src/pages/index.pug
) ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈΠ·Β src/pug
(ΡΠΌ.Β Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²), Π²Β ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Β«ΡΠ°ΠΏΠΊΠΈΒ», Β«ΠΏΠΎΠ΄Π²Π°Π»Π°Β» ΠΈΒ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ (ΡΠΌ.Β Π±Π»ΠΎΠΊΠΈ).
ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ (Π²Β src/blocks/
) ΠΌΠΎΠΆΠ΅Ρ (Π½Π΅Β ΠΎΠ±ΡΠ·Π°Π½) ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΡΠ½Π½ΡΠΉ pug-ΡΠ°ΠΉΠ» ΡΒ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡ includ-ΠΎΠΌ Π²Β ΡΠ°ΠΉΠ» src/pug/mixins.pug
.
ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (src/scss/style.scss
) ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΒ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ (Π²Β src/blocks/
) ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΡΠ½Π½ΡΠΉ scss-ΡΠ°ΠΉΠ» ΡΠΎΒ ΡΡΠΈΠ»ΡΠΌΠΈ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Β ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ (ΠΈΠ»ΠΈ ΡΠΏΠΎΠΌΡΠ½ΡΡ Π² config.js#alwaysAddBlocks
), Π΅Π³ΠΎΒ scss-ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡ Π²Β ΡΠ±ΠΎΡΠΊΡ ΡΡΠΈΠ»Π΅ΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΡΡΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³:
ΠΠ²ΡΠΎΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Ρ stylelint ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ. Π‘ΠΌ. .stylelintrc
.
- ΠΠΠ-ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅:
__
β ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°,--
β ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°. - ΠΠ΄ΠΈΠ½ ΠΠ»ΠΎΠΊ = ΠΎΠ΄ΠΈΠ½ ΡΡΠΈΠ»Π΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ».
- ΠΡΠ΅ΡΠ΅Π΄Π½ΠΎΡΡΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ²:
- ΠΠ½ΠΊΠ»ΡΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ΠΉ
- Π‘ΡΠΈΠ»Π΅Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΡΠ½ΠΎΡΡΠΈ
- ΠΠ΅Π΄ΠΈΠ°ΡΡΠ»ΠΎΠ²ΠΈΡ
- ΠΡΠ΅Π²Π΄ΠΎΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
- Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ
- ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±Π»ΠΎΠΊΠ°
- ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π±Π»ΠΎΠΊΠ°
Π’ΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π° (src/js/entry.js
) ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΒ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π’ΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ webpack-ΠΎΠΌ (ΡΒ babel-loader).
ΠΠ»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ src/js/script.js
(ΡΠΌ.Β config.js#addJsAfter
ΠΈΒ config.js#addJsBefore
).
ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ (Π²Β src/blocks/
) ΠΌΠΎΠΆΠ΅Ρ (Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½) ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΡΠ½Π½ΡΠΉ js-ΡΠ°ΠΉΠ». ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Β ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ (ΠΈΠ»ΠΈ ΡΠΏΠΎΠΌΡΠ½ΡΡ Π² config.js#alwaysAddBlocks
), Π΅Π³ΠΎΒ js-ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡ Π²Β ΡΠ±ΠΎΡΠΊΡ ΡΡΠΈΠ»Π΅ΠΉ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ (src/pug/layout.pug
) ΠΏΡΠΎΠΏΠΈΡΠ°Π½Π° Π²ΡΡΠ°Π²ΠΊΠ° Π²Β <head>
ΡΠΊΡΠΈΠΏΡΠ° src/js/head-script.js
, Π²Β ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π»ΡΒ ΡΠ·Π»Π° <html>
ΡΠΊΠ°Π·Π°Π½ΠΎ:
- Π£Π±ΡΠ°ΡΡ ΠΊΠ»Π°ΡΡ
no-js
ΠΈΒ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»Π°ΡΡjs
. - ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»Π°ΡΡ ΡΒ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈ ΠΠ‘.
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»Π°ΡΡ
touch
ΠΈΠ»ΠΈno-touch
, Π²Β Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΒ ΡΠΈΠΏΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. - ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ
--vh
ΡΠΎΒ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Β 1% Π²ΡΡΠΎΡΡ Π²ΡΡΠΏΠΎΡΡΠ° (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ²).
Π‘ΡΠ°Π²ΡΡΠ΅ Π·Π²Π΅Π·Π΄Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ/ΠΈΠ»ΠΈ ΡΠ³ΠΎΡΡΠΈΡΠ΅ ΠΌΠ΅Π½Ρ ΠΊΠΎΡΠ΅, ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Ρ ΡΠΊΠΎΠ»Ρ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠΌΠΌΡ.