Π― ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π» ΡΠ²ΠΎΠΉ bundle.js
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ webpack-bundle-analyzer
ΠΈ ΡΡΠΎ ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ react-ace, Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ Π²ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ.
ΠΠ°ΠΊ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°?
ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, @fumblehool brace ΠΈ ace - ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π― ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠ΅Π» Π±Ρ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? Π― Ρ ΡΠ°Π΄ΠΎΡΡΡΡ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³Ρ.
Π― Π±ΡΠ΄Ρ ΠΎΡΠΊΡΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΠΌΠΎΡΠΈ. Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ, ΠΊΡΠΎΠΌΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° ΠΌΠ°ΡΡΡΡΡΡ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ react-ace.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΡΡΡ / posts / new Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ System.import.
Π ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ΅ 3 ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠΎΡΡ getComponent Π΄Π»Ρ <Route>
ΠΡΠΎ Π½Π΅ ΡΠ΅ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΠ·Π° ΠΈ ΡΠΊΠΎΠ±ΠΊΠΈ, ΠΈ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ΅ΡΠΈΡ, ΠΊΠ°ΠΆΠ΄Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° wysiwyg ΠΎΠ³ΡΠΎΠΌΠ½Π° ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ. ΠΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π²Π°Ρ ΡΠ°ΠΉΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΡΠΎΡ Π»ΠΈΡΠ½ΠΈΠΉ 1 ΠΠ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π΅ Π½ΡΠΆΠ΅Π½.
Brace ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎ 66% ΠΌΠΎΠ΅ΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ SPA Ρ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ (create-react-app).
ΠΠ½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΠΊΠ°ΠΊ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ brace
? ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΡΡ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ? ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ
ΠΠ΄Ρ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ.
Π― ΡΠΎΠ·Π΄Π°Π» ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² PR GitHub. ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.
ΠΏΠΎΡΡΠΎΠΌΡ Π² Π²Π΅ΡΡΠΈΠΈ 8 Π΄Π»Ρ react-ace ΠΌΡ ΠΎΡΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ brace ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Ρ ace, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅, Π½ΠΎ Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ».
ΠΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ
ΡΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ brace Π±ΡΠ» 640,83 ΠΠ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ace-builds - 665,48 ΠΠ.
ΠΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ :/
Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°?
Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ²ΡΠ·ΠΊΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΡΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
ΠΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌ Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» react-syntax-highlighter
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½ΠΈΡ
_light_ Π²Π΅ΡΡΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ ace Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π»ΡΡΡΠ΅, ΠΈ Ρ Π½Π°Π΄Π΅ΡΠ»ΡΡ, ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ.
https://github.com/react-syntax-highlighter/react-syntax-highlighter#light -build
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Brace ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎ 66% ΠΌΠΎΠ΅ΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ SPA Ρ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ (create-react-app).
ΠΠ½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΠΊΠ°ΠΊ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ
brace
? ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΡΡ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ? ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ