Π Π²Π½ΠΎΠ²Ρ ΠΏΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡ readMe ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π΅Π³ΠΎ, Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΡΡΡ Π½Π°Π²Π°ΡΠ», Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π΅Π³ΠΎ Ρ ΠΎΡΡ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΡΠΈΡΠ°Π΅Ρ.
Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΡΠ΅Π» ΠΎΡ Π·Π°Π΄Π°Π½ΠΈΡ. ΠΠΎΠ±Π°Π²ΠΈΠ» ΠΌΠ΅Π½Ρ Ρ ΡΡΠΎΠ²Π½ΡΠΌΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ (Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² localStorage), Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ°Π½ΠΊΠ°ΠΌ hitPoint-Ρ, Π½Ρ ΠΈ ΠΏΠΎΠ»ΠΎΡΠΊΠΈ hp ΡΠΎΠΆΠ΅ Π΅ΡΡΡ. Π― ΠΎΡΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΠΎ ΡΡΡΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΈ ΡΠ°Π½ΠΊΠΈ ΠΆΠΈΠ²ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΡΡ, ΠΈ Π½Π΅Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°. Π’Π°Π½ΠΊΠΈ ΡΡΡΠ΅Π»ΡΡΡ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΡΡΠ΄ΠΊΠΈ. Π£ΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ hp, ΡΡΠΎΠ½ ΡΠ°Π½ΠΊΠ°, Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π½ΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈΠ³ΡΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅Π½Ρ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ (ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»/ΠΏΡΠΎΠΈΠ³ΡΠ°Π», Π² Π±Π΅Π΄ΡΡΡΠ΅ΠΌ Ρ ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ³ΡΠΎΠ²ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ).
Webpack ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ js, scss, HtmlWebpackPlugin β Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ html ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ js ΠΈ css ΡΠ°ΠΉΠ»Ρ. Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π³ΡΡΠ·ΠΈΡΡ webpack.config.js ΡΠ°ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π²ΡΠ½Π΅ΡΠ΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΡ webpackConfiguration (ΠΏΠΎ-Ρ ΠΎΡΠΎΡΠ΅ΠΌΡ ΠΌΠ½Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ dev ΠΈ prod ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Ρ Π΅ΡΠ΅ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΎΡΠ²Π΅ΡΠ»Π΅Π½ΠΈΡ).
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ public. ΠΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π»Π΅ΠΆΠ°Ρ Π² src, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΠ°ΠΏΠΊΡ dist.
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρ build Π² package.json, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ npm run build.
Π ΠΏΠ°ΠΏΠΊΠ΅ models Π»Π΅ΠΆΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ°ΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΠΈΡΡΠΎΠΌ js Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ DOM. ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ ΡΡΠΎ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ web. ΠΠΎ ΡΡΡΠΈ, ΡΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²ΠΈΠΆΡΡΠΈΠ΅ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΠ½ΡΠ΅.
Π ΠΏΠ°ΠΏΠΊΠ΅ components Π»Π΅ΠΆΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΠ±Π΅ΡΡΠΊΠΈ Π½Π°Π΄ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΌΠΈ Π·Π° ΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π½Π° ΠΊΠ°ΡΡΠ΅. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΈ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ ΡΠ½Π°ΡΡΠ΄Π° ΠΈ ΠΏΡΠΎΡΠ΅Π΅ Π²ΡΠ½Π΅ΡΠ΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ.
Π ΠΏΠ°ΠΏΠΊΠ΅ services Π»Π΅ΠΆΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ³ΡΡ. Π’Π°ΠΌ Π»Π΅ΠΆΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡΠΌ ΡΠ°Π½ΠΊΠΎΠ², ΠΏΠΎ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠ°ΡΡΠ΅, ΡΡΠ½ΠΊΡΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΠ³ΡΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠ΅ΡΠ²ΠΈΡ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠ°Π½ΠΊΠΎΠΌ, Π½Ρ ΠΈ Π³Π»Π°Π²Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΠΈΠ³ΡΡ.
Π ΠΏΠ°ΠΏΠΊΠ΅ util Π»Π΅ΠΆΠ°Ρ ΡΡΠΈΠ»ΠΈΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ id Π΄Π»Ρ ΠΌΠΎΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ random Π΄Π»Ρ ΠΏΡΠΈΠ΄Π°Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ ΡΠ°Π½ΠΊΠΎΠ² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΠΈ.
Π’Π°ΠΊ ΠΆΠ΅ ΡΡΠ°ΡΠ°Π»ΡΡ ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΠΏΠ°ΡΡΠ΅ΡΠ½ observable ΠΏΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ°Π½ΠΊΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ°Π½ΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠ΄ ΡΠΎΠ±ΡΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ³ΡΡ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ (Π° Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ), ΡΠΎ Π·Π° ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π½ΠΊΠ° ΠΌΠΎΠ³ΡΡ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ.
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ: singleton, observer, facade. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ, Π½ΠΎ Ρ Π½Π΅ ΠΏΠΎΠΌΠ½Ρ)
Π₯ΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΡ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅Π½Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ:
- Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ³ΡΠ΅ ΠΏΠ»Π°Π²Π½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΡΠ°Π½ΠΊΠΈ ΠΏΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΈΡΡΠ΅Π·Π°Π»ΠΈ ΡΡΠ°Π·Ρ, Π° Π½Π° ΠΈΡ ΠΌΠ΅ΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ»ΡΡ Π²Π·ΡΡΠ², Π΄Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ²Π»ΡΠ»ΡΡ Π²Π·ΡΡΠ².
- ΠΏΠΎΠ΄ΠΏΡΠ°Π²Π»Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄(ΡΠΆΠ΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ», Π½ΠΎ ΡΡΠΎΠΌΡ Π½Π΅Ρ ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠ²:)).
- scss, Ρ ΡΠ°Π·Π±ΠΈΠ» Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π½Π° ΡΠ°Π·Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Ρ ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΡΡΠΈ.