[ x ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
Π’Π΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ/ΠΊΠ°Π½Π°Π»Ρ/Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π² ΠΌΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Cannot determine the module for class (...)
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ½ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, Π½Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΡΡ ΡΠ°Π·Π½ΡΡ
ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΠΎΠ±ΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²). ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π― ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ ΠΈ/ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π²ΡΡΠ°Π²ΠΊΡ ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ ΠΌΠΎΠ³ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅, Π° Π½Π΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ
ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² plunkr, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JIT.
Cannot determine the module for class
ΠΠ°ΠΊΠΎΠ²Π° ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡ / Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ?
Π£ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°Ρ ΡΠ°ΠΌΠΈΡ
, ΠΈ Π½Π°ΡΠΈ ΠΏΠ°ΡΡΠ½Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅Ρ
ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΎΠ±ΡΠΈΡ
ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ»Ρ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ AOT, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ npm Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π°ΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π Π°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅:
ΠΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π½Π° Π²ΡΠ΅Ρ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
, Π½ΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
Windows 10
ΠΠΎΠ΄ ΠΠ‘
Cmder (ΡΠ΅ΡΠΌΠΈΠ½Π°Π» bash)
Π£Π³Π»ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ:
v2.1.0 (Ρ
ΠΎΡΡ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π² 2.3.1
ΠΡΠ°ΡΠ·Π΅Ρ: Π²ΡΠ΅ - ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°
Π―Π·ΡΠΊ: ΠΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΡ
ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ°
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ.
Π― Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
@DzmitryShylovich ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΠ‘ΠΠΠΠ¬ΠΠ£ΠΠ’Π, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ .ts Π±Π΅Π· ΡΡΡΠ»ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
@swimmadude66 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² tsconfig
@DzmitryShylovich , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½ΠΎ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ ΡΡΠΎ. ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠ΅ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ» Π±ΠΎΡΠΎΠ½ΠΊΠ°, Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π±ΠΎΡΠΎΠ½ΠΊΠ°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ½Π΅ ΠΠΠΠ‘Π’ΠΠΠ’ΠΠΠ¬ΠΠ Π½ΡΠΆΠ½Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π±ΠΎΡΠΎΠ½ΠΊΠ°.
ΠΠ°ΠΆΠ΅ΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΡΠ°ΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠΎΠΌΠΈΠΌΠΎ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ, Ρ ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π°Ρ ΠΎΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌΠΈ Π΅ΠΌΡ ΠΈΠ»ΠΈ ΡΠ²Π½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
ΠΠ°ΠΆΠ΅ΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΡΠ°ΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ...
Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ JIT ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΠ ΠΠ£ΠΠΠ« ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΠ½ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π±Π΅Π· Π²ΡΠ΅Π΄Π°.
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π΅ΡΡ Π΄Π΅Π½Ρ, Π½ΠΎ ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π― ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΏΠΎΡΠΎΠ± Ρ ΠΎΡΡ Π±Ρ ΠΏΠΎΠ΄Π°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π½Π° ΡΠ²ΠΎΠΉ ΡΡΡΠ°Ρ ΠΈ ΡΠΈΡΠΊ.
ΠΠΎΠΉ ΠΊΠΎΠ»Π»Π΅Π³Π° ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ Ρ ΠΏΡΠΎΡΡ Π²Π°Ρ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΊΡΡΠ» ΠΏΡΠΎΡΠΈΠ² @ngtools/webpack, Π³Π΄Π΅ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΈΡ ΡΠ΅ΡΡΠ°Ρ . https://github.com/angular/angular-cli/issues/3636
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π΅ ΠΏΡΠΎΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈ Π²ΡΠ΄Π°Π΅Ρ Π½Π΅ΠΈΡΠΏΡΠ°Π²ΠΈΠΌΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΈΡΠΏΡΠ°Π²ΠΈΠΌΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ . ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ.
Π― Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡ.
Π― Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Β«ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² JITΒ», Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² AOT.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ ΡΠ΅ΡΠΈΡ Π²Π°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡ Π²Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ
Π°ΡΠΏΠ΅ΠΊΡΠ°Ρ
.
@Toxicable Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ npm Π² ΡΡΠΈΠ»Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
Π² @project/angular (Π½Π°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ npm Ρ ΠΎΠ±ΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠ°Π½Π°Π»Ρ, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ. ΠΠ°ΡΠΈ ΠΏΠ°ΡΡΠ½Π΅ΡΡ Ρ ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎ Π΄ΡΡΠ³ΡΡ Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΈ Π²ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅.
ΠΠ°Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π»ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΡΡΠ½Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π» ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π½ΠΎΠ²ΡΡ
ΡΠ°ΡΡΠ΅ΠΉ ΠΈ ΠΎΠ±ΡΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ npm. Π£ ΠΌΠΎΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ HomeModule
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠΌΠΏΠΎΡΡ:
import {
OverviewComponent,
ProfileComponent
} from './components/home';
import {
AuthComponent
} from '@project/angular';
Π·Π°ΡΠ΅ΠΌ ΡΡΠΎ Π²Π·ΡΡΠ²Π°Π΅ΡΡΡ Π² AOT, Π³ΠΎΠ²ΠΎΡΡ: Cannot determine the module for class OverviewComponent
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΠ±Π·ΠΎΡΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ· @project/angular.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° @project/angular/components/home/overview/component.ts
, Ρ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π», ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ. Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΉΠ» ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π½ΡΡΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° node_modules Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ, ΠΆΠ°Π»ΡΠ΅ΡΡΡ ΠΈ ΡΠΌΠΈΡΠ°Π΅Ρ.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ JIT, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ !== AOT ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ AOT, Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠ°ΡΡΠ½Π΅ΡΠ΅ Proof of Concept Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΌΠ°Π»Ρ. Π― Π½Π΅ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π²ΡΠ΅, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² JIT, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π² AOT, Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²Π΅ΡΠΊΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΄Π΅ ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° β ΡΠ΅ΡΡΡ.
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΡΠ½ΠΊΡΠΈΠΉ some-feature
Ρ some-feature.component.ts
ΠΈ some-feature.component.spec.ts
.
ΠΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ
ΠΎΡΠ΅Π» Π±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΡΠΎΠ·Π΄Π°Π² ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ some-feature.component.spec.ts
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ some-feature
Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
@Component({
selector: 'test-app',
template: `<some-feature><p>projected content</p></some-feature>`
})
export class TestAppComponent {}
ΠΠ°ΡΠ΅ΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ :
...
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [TestAppComponent, SomeFeatureComponent]
})
})
...
ΠΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ, ΠΏΠΎΠΊΠ° Ρ Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΠ» ng build --prod --aot
Ρ ΠΏΠΎΠΌΠΎΡΡΡ angular-cli, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΄Π°Π΅Ρ:
Cannot determine the module for class TestAppComponent
.
Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ AOT ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ
.spec
.
ΠΠ±ΡΠ΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°ΠΊΠΎΠ²ΠΎ: ngc ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ tsc. Π ΠΎΠ½ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Angular Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±Π΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ±ΠΎΠΉ AOT, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π·Π΄Π΅ΡΡ. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ AOT ΠΌΠΎΠ³ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΎΠΌΡ ΠΊΠ°ΠΊ TestComponent* ΠΈ Ρ. Π΄.
Π₯ΠΎΡΠΎΡΠΎ, ΡΠ°ΠΊ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π΄Π΅ΡΡ. ΠΠ°ΠΆΠ΅ΡΡΡ, ΠΌΡ Π½Π°ΡΠ»ΠΈ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ»ΡΡΠ°Ρ (Π½Π΅ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉ Ρ testWrapper). ΠΠ°ΠΆΠ΅ΡΡΡ, Π½Π°ΡΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ»Π° Π² Π½Π°ΡΠΈΡ
ΡΡΠ²ΠΎΠ»ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
. ΠΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΠΠ§ΠΠΠ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π±ΠΎΡΠΊΠΈ ΠΎΠ½ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΡΠ΅Ρ
Π²Π΅ΡΠ΅ΠΉ, ΠΏΠ΅ΡΠ΅ΠΈΠ·Π»ΡΡΠ°Π΅ΠΌΡΡ
Π±ΠΎΡΠΊΠ°ΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π»ΠΈ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ PROJECT/components
, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ ΠΠ‘Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½. ΠΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΡΠ΅ ΠΆΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π»ΡΡΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π½ΠΎ Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π°Π±ΠΎΡΠΈΠ»ΡΡ ΠΎΠ± ΡΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
.
Π²ΠΈΠ΄ΠΈΠΌ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ:
$ ./node_modules/.bin/ng-xi18n
Error: Cannot determine the module for class DividerPanel in C:/msweb/studiotouch/src/comps/dividerpanel/DividerPanel.ts!
Cannot determine the module for class EntryPanel in C:/msweb/studiotouch/src/comps/entry/EntryPanel.ts!
Cannot determine the module for class ForgotPass in C:/msweb/studiotouch/src/comps/entry/ForgotPass.ts!
Cannot determine the module for class Footer in C:/msweb/studiotouch/src/comps/footer/Footer.ts!
Cannot determine the module for class Infobox in C:/msweb/studiotouch/src/comps/infobox/Infobox.ts!
Cannot determine the module for class InputNumeric in C:/msweb/studiotouch/src/comps/inputnumeric/InputNumeric.ts!
Cannot determine the module for class InputString in C:/msweb/studiotouch/src/comps/inputstring/InputString.ts!
Cannot determine the module for class Loading in C:/msweb/studiotouch/src/comps/loading/Loading.ts!
Cannot determine the module for class MapAddress in C:/msweb/studiotouch/src/comps/mapaddress/MapAddress.ts!
Cannot determine the module for class Minitab in C:/msweb/studiotouch/src/comps/minitabs/MiniTab.ts!
Cannot determine the module for class Minitabs in C:/msweb/studiotouch/src/comps/minitabs/MiniTabs.ts!
Cannot determine the module for class ModalDialog in C:/msweb/studiotouch/src/comps/modaldialog/ModalDialog.ts!
Cannot determine the module for class Ng2Highcharts in C:/msweb/studiotouch/src/comps/ng2-highcharts/src/directives/ng2-highcharts.ts!
Cannot determine the module for class Ng2Highstocks in C:/msweb/studiotouch/src/comps/ng2-highcharts/src/directives/ng2-highstocks.ts!
Cannot determine the module for class Ng2Highmaps in C:/msweb/studiotouch/src/comps/ng2-highcharts/src/directives/ng2-highmaps.ts!
Cannot determine the module for class simplelistEditable in C:/msweb/studiotouch/src/comps/simplelist/simplelistEditable.ts!
Cannot determine the module for class simplelist in C:/msweb/studiotouch/src/comps/simplelist/simplelist.ts!
Cannot determine the module for class FilterPipe in C:/msweb/studiotouch/src/pipes/FilterPipe.ts!
Cannot determine the module for class FilterPipeEqual in C:/msweb/studiotouch/src/pipes/FilterPipeNot.ts!
Cannot determine the module for class OrderBy in C:/msweb/studiotouch/src/pipes/OrderBy.ts!
Cannot determine the module for class ReplacePipe in C:/msweb/studiotouch/src/pipes/ReplacePipe.ts!
Cannot determine the module for class SortBy in C:/msweb/studiotouch/src/pipes/SortBy.ts!
at analyzeAndValidateNgModules (C:\msweb\studiotouch\node_modules\@angular\compiler\bundles\compiler.umd.js:24878:17)
at Extractor.extract (C:\msweb\studiotouch\node_modules\@angular\compiler\bundles\compiler.umd.js:27727:20)
at Extractor.extractBundle (C:\msweb\studiotouch\node_modules\@angular\compiler-cli\src\extractor.js:40:33)
at Extractor.extract (C:\msweb\studiotouch\node_modules\@angular\compiler-cli\src\extractor.js:30:34)
at extract (C:\msweb\studiotouch\node_modules\@angular\compiler-cli\src\extract_i18n.js:7:67)
at Object.main (C:\msweb\studiotouch\node_modules\@angular\tsc-wrapped\src\main.js:47:16)
at Object.<anonymous> (C:\msweb\studiotouch\node_modules\@angular\compiler-cli\src\extract_i18n.js:14:9)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
Extraction failed
root@DESKTOP-VEUHFOL /cygdrive/c/msweb/studiotouch
Angular 2 ΠΡΡ
ΠΎΠ½Π½Π°Ρ ΡΠ°ΠΊΠΎΠ²ΠΈΠ½Π°: http://ng2.javascriptninja.io
ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ @ https://github.com/born2net/Angular-kitchen-sink
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
Π¨ΠΎΠ½
i18 Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ.
Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΎΡΠΈΡΡΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΈ ΠΊΡΠΎΠ»ΠΈΡΡΡ Π½ΠΎΡΠ° ΡΡΠ°Π»Π° Π³Π»ΡΠ±ΠΆΠ΅:
$ ./node_modules/.bin/ng-xi18n
Error: Error at C:/msweb/ng-skeleton/node_modules/typescript/lib/lib.d.ts:18770:11: Duplicate identifier 'ActiveXObject'.
Error at C:/msweb/ng-skeleton/node_modules/typescript/lib/lib.d.ts:18773:13: Duplicate identifier 'ActiveXObject'.
Error at C:/msweb/ng-skeleton/e2e/app.po.ts:1:38: Cannot find module 'protractor'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/facade/lang.d.ts:12:17: Cannot find name 'Map'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/facade/lang.d.ts:13:17: Cannot find name 'Set'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/application_init.d.ts:16:18: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/rxjs/Observable.d.ts:68:60: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/rxjs/Observable.d.ts:68:70: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/linker/compiler.d.ts:53:49: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/linker/compiler.d.ts:61:65: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/application_ref.d.ts:116:67: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/application_ref.d.ts:132:101: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/application_ref.d.ts:158:67: Cannot find name 'Promise'.
Error at C:/msweb/ng-skeleton/node_modules/@angular/core/src/application_ref.d.ts:160:101: Cannot find name 'Promise'.
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ angular-cli ΠΈ angular-compiler, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ i18 Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
Π‘ΡΡΠ»ΠΊΠ° (Ρ ΠΎΡΠΎΡΠ°Ρ ΠΈ ΡΠΈΡΡΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°): https://github.com/born2net/ng-skeleton
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
Π¨ΠΎΠ½
Π’Π° ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° Π΄Π»Ρ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠ°Π³, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ
// two comments aot read:
// {path: 'about', component: AboutComponent
// import { AboutComponent } from './about';
@kirjai ngc ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ Π²Ρ Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ.
@DzmitryShylovich , ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Ρ ΠΏΡΠΎΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ AOT Π²ΠΎΠΎΠ±ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ... Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΏΡΠΎΠΏΡΡΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² .spec Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ AOT - ΡΡΠΎ ΠΏΡΡΡ. ΠΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² .spec Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΡΠ΅ΡΡΡ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΡΡΠΈΠ»Ρ?
Π― ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ Ρ ΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ (ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ) ΠΈΠ·-Π·Π° Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ AOT.
Π― ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΠ°ΡΡΡ . Π Π½Π΅ΠΌ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΏΡΠΎΠ²ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ/ΠΎΠ±ΠΎΠΉΡΠΈ.
Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π»ΡΠ΄ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ ΠΏΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AOT, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ?
(ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΈΡΠ΅Ρ ΠΎΡΠ²Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ RouterLinkStubDirective
)
_ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² "ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ" ΠΌΠΎΠ΄ΡΠ»Ρ:_
/**
* Needed so that `aot` build is working. But it isn't used throughout our tests and/or app.
*/
@NgModule({
imports: [
AppModule
],
declarations: [
RouterLinkStubDirective,
RouterOutletStubComponent
]
})
export class FakeRouterModule {
}
ΠΡΡΠ°ΡΠΈ, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ²:
export abstract class AsyncTransform extends AsyncPipe implements PipeTransform {
...
}
Β«ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° AsyncTransformΒ»
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ π.
Β«ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠΈΠΏ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π½Π΅Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°Β».
ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° AppGlobalModalComponent.
export class CustomGlobalModalComponent extends AppGlobalModalComponent {}
@gestj , ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π» @Phmager , ΡΠΈΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π΅ΡΠ·ΠΊΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Π²Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΈΠ»ΠΈ Π½Π΅ Π½ΡΠΆΠ΅Π½.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π½Π°ΡΠΈ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ npm ΠΈ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π»ΠΈ node_modules Π² Π½Π°ΡΠ΅ΠΌ tsConfig. Π― ΡΠΏΠΎΠΌΠΈΠ½Π°Π» Π²ΡΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ ΠΊΠ»Π°ΡΡ Π²Π½ΡΡΡΠΈ node_modules, ΠΎΠ½ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ Π½Π° Π±ΠΎΡΠΊΡ, Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»Π°Ρ Π² ΡΠΎΠΉ ΠΆΠ΅ Π±ΠΎΡΠΊΠ΅.
ΠΡΠΎ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ±ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π½Π°ΡΠΈ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ.
ΠΡΠ΅ Π΅ΡΠ΅ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π° Π΄ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Angular ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π° ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°.
ΠΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Angular Π² Π½Π°ΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
, ΠΈ ΠΏΠΎΡΠ»Π΅ Π³ΠΎΠ΄Π° ΠΏΠΎΠΏΡΡΠΎΠΊ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΡΠΈΡ
ΠΌΠΎΠ΄Π½ΡΡ
ΡΡΡΠΊΠ°Ρ
Angular2+ Ρ ΠΏΡΠΈΡΠ΅Π» ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄Ρ:
1- Angular ΠΌΠ°ΡΡΠΈΠ²Π½ΡΠΉ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ, Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΡΡΡΡΡΠΌ? ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ AOT ΠΈ LazyLoading ΠΈ gzip Π²Π°ΡΠΈ Π²Π΅ΡΠΈ.
2- ΠΡ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°? ΠΠΠ’, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π½ΠΈΠ²ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠ°ΡΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ΅, Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ° 8 ΠΌΠ³.
3- ΠΡ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ AOT ?? AOT Π³Π»ΡΡΠΈΡ, ΠΈ Π΅Π³ΠΎ ΡΡΡΠ΄Π½ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ javascript/es6 ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
4- ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ AOT Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅? Π₯ΠΎΡΠΎΡΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° Π²Π°Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ @angular/compiler ΠΏΠ»ΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠ³ΡΠΈΠ΅ΡΡ AOT, ΠΌΠΎΠ»ΠΎΠ΄Π΅Ρ.
5-Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Angular2+ Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ gzip, Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Angular ΠΎΠ³ΡΠΎΠΌΠ΅Π½, Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π»ΡΡΡΠ΅ :) Π’Π°ΠΊ Π²ΠΎΡ, ΠΎΠ½ΠΈ ΠΏΡΠΎΠ΄Π°Π΅ΠΌ gziping ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Angular2 :)
@ xe4me ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠ΅Π΅ΡΡ ΠΊ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·Π³Π»Π°Π³ΠΎΠ»ΡΡΡΠ²ΡΠΉΡΠ΅ ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅.
build:dev Π² https://github.com/AngularClass/angular2-webpack-starter Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, build:aot ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠ°ΡΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ AOT.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ Ρ Π½Π°ΡΠ΅Π» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Ρ Π²Π°Ρ.
ΠΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π±ΡΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ MapPipes.ts, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π²Π° ΠΊΠ°Π½Π°Π»Π°.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ°ΠΉΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π² ΠΌΠΎΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅, Π° Π΄ΡΡΠ³ΠΎΠΉ Π½Π΅Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ Π½Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π» Π²ΡΠΎΡΠΎΠΉ Π² ΡΠ°ΡΡΠΈ Β«ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ:Β» ΠΌΠΎΠ΅Π³ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° @NgModule . ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ»ΡΡΠΈΠ»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π― Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π» ΠΈ ΡΡΠΎ (Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ), ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ angular ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΡΡΠ°Π»ΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ³Π»ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ extends NgClass
. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
@DzmitryShylovich @kirjai ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Ρ TestComponents
Π² ΡΠ°ΠΉΠ»Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡ
ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π΅, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡ
ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π° Π΄Π»Ρ ΠΌΠ΅Π½Ρ.
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Π½Π΅Π»Π΅ΠΏΠΎ, ΠΌΠ½Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°Ρ ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² JIT, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ Ρ AOT (Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΡΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΊΠΎΠ»ΠΎ ΠΏΠΎΠ»Π΄ΡΠΆΠΈΠ½Ρ Π²ΡΠΏΡΡΠΊΠΎΠ²).
@cwmrowe ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ, Π½ΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ? ΠΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»ΠΎΠΌΠ°Π½Π½ΡΠΌ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡΠ½ΠΎ.
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Angular 2. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΄Π²Π΅ ΠΏΠ°ΠΏΠΊΠΈ, Π½Π°Π·Π²Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΡΠΊΠ°ΠΆΠ΅ΠΌ, some-domain.com ΠΈ some-other-domain.com . ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π΄Π»Ρ Π΄Π²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΡΠΈΠ»Π΅ΠΌ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° A, Π° ΠΏΠΎΠ·ΠΆΠ΅ Ρ Ρ ΠΎΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° B. Π ΠΊΠΎΠ΄Π΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 1 ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ΄Π°:
import {CustomModules} from './some-domain.com';
// import {CustomModules} from './some-other-domain.com';
Π― ΠΏΡΠΎΡΡΠΎ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π£ Π½Π°Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΠΈ ΠΌΡ Π½Π΅ Π½Π°ΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π£ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π JIT Π²ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ Π² AOT Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ Π½Π°Ρ Π½Π΅Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ oop ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
@jabaa ΡΠ΄Π°Π»ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Component
ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
@DzmitryShylovich ΠΠΎΠ³Π΄Π° Ρ ΡΠ΄Π°Π»ΡΡ @Component
, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ. Π― Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ Π²ΠΎ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΡΠΎ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎΠ³Π΄Π° Ρ ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈ ΡΠ»ΡΠΆΠ±Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ Π²ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎ ΡΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠ³ Π·Π°Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ.
@jabaa ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡ? ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ @Component
.
@bigjetplane Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Π² ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ ΡΠ΄Π°Π»ΡΡ @Component
, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΡΡΠΎ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π·Π½Π°Ρ, DI ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ Angular. ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΡΠ΄Π°Π»ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π½Π΅ Π²Π½Π΅Π΄ΡΡΡΡΡΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΠ½Π³ΡΠ»ΡΡ 4.
@jabaa ΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ jit ΠΈΠ»ΠΈ aot, ΠΈΠ»ΠΈ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ?
@bigjetplane ΠΠΎΡ ΠΏΠ»ΡΠ½ΠΊΠ΅Ρ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ ΠΈ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² jit. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΈΠ· Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ: Can't resolve all parameters for App: (?).
ΠΡΠΎ Π½Π°Ρ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π£ Π½Π°Ρ Π΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΈ ΠΈΠ½ΠΆΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ .
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² aot. Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ aot ΠΈ jit Π΄Π»Ρ Π½Π°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ Ρ jit. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ±ΠΎΡΠΊΠ° Ρ aot. Π’Π°ΠΊ ΠΌΡ Π½Π΅Π΄Π΅Π»Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ Ρ jit Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ΅Π· Π½Π΅Π΄Π΅Π»Ρ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ Π±ΠΈΠ»Π΄ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π½ΠΈΠΎΡΠΊΡΠ΄Π°. Π― ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π΄Π»Ρ jit, Π³Π΄Π΅ Ρ ΠΌΠΎΠ³Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ. JIT-ΡΠ±ΠΎΡΠΊΠ° ΡΡΠ΅Π±ΡΠ΅Ρ 10-20 ΡΠ΅ΠΊΡΠ½Π΄. Π‘Π±ΠΎΡΠΊΠ° aot ΡΡΠ΅Π±ΡΠ΅Ρ 25 ΠΌΠΈΠ½ΡΡ.
@tbosch ΠΡΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅? ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΠΈΠ·ΠΈΡΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ Π°Π½Π΅ΠΊΠ΄ΠΎΡΠ°ΠΌ, ΠΈ ΠΌΠ½Π΅ Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ Π΄Π°ΡΡ Π½Π°ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π» ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ΅ΠΊΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ angular, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² package.json.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° AOT.
ERROR in Cannot determine the module for class FullPageErrorComponent in C:/users/amra6003/projects/git/refadmintoolui/n
ode_modules/refcommonui/src/app/component-library/error/error.component.ts!
Cannot determine the module for class SelectCountryComponent in C:/users/amra6003/projects/git/refadmintoolui/node_modul
es/refcommonui/src/app/component-library/select-country/select-country.component.ts!
Cannot determine the module for class DateRangeSelectorComponent in C:/users/amra6003/projects/git/refadmintoolui/node_m
odules/refcommonui/src/app/component-library/date-range-selector/date-range-selector.component.ts!
ΠΠΎΡ ΠΎΠΆΠ΅, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ :(
ΠΡΠ±ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
Π― ΡΠΎΠΆΠ΅ Π½Π°Π΄Π΅ΡΡΡ Π½Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ. ΠΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Angular Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ-Π·Π°Π³Π»ΡΡΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ±ΠΎΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ gestj (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ-Π·Π°Π³Π»ΡΡΠΊΠ°).
ΠΡΠ°ΠΊ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²-Π·Π°Π³Π»ΡΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π½Π°Π·Π²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΡΡΡΠΈΠΊΡΠΎΠΌ spec.ts
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ whatever.component.spec.ts
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, tsc Π±ΡΠ΄Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ (ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π²Π°ΡΠ΅ΠΌ tsconfig) ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ ngc.
Π ΠΠΠΠΠ’ΠΠ ΠΠΠΠ’Π¬: ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π΄ΡΡΠ³Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°, Π²ΠΎΠ·Π½ΠΈΠΊΡΠ°Ρ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π² ngtools/webpack. ΠΡΠΎΡ Π±ΠΈΠ»Π΅Ρ Π±ΡΠ» ΠΎΡΠΊΡΡΡ Π·Π΄Π΅ΡΡ: https://github.com/angular/angular-cli/issues/6228 .
ΠΠΎΠ²ΠΎΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ½ΡΠ΅ Π΄Π»Ρ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π Π½Π΅Π΄Π°Π²Π½Π΅ΠΉ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2.4.10 Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΏΠ°ΡΠΎΠΉ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π°:
ModuleNotFoundError: Module not found: Error: Can't resolve '../../../../../../../../$_gendir/src/components/spinner/component.ngfactory'
ΠΠ°ΠΆΠ΅ΡΡΡ, Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ ΠΆΡΡΠΊΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΎΡΠΊΡΡΠ²Π°Π» ΡΠΈΠΊΠ΅Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ.
Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ. ΠΡ ΠΏΠΎΠΏΡΡΠ°Π»ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½, ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π°ΠΏΡΡΠΌΡΡ (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ»Ρ index.ts
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ, ΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ», Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅) ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π²ΡΡ ΠΎΠ±ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² node_modules.
ΠΠ°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π·Π½Π°ΡΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ angular Π² ΠΌΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ node_modules
? ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΡ
Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ°ΡΡΡ, Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ»Π½ΠΎΠ²Π°ΡΡ, Π΅ΡΡΡ Π»ΠΈ Ρ Π½ΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Ρ!
@swimadude66 , Π΄Π°, ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΡΠΈΠΌ, ΡΠ°Π±ΠΎΡΠ°Ρ Ρ Π½Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ https://github.com/WealthBar/a2d3 . ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ±ΡΠ°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° AoT, ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠ±ΠΎΡΠΊΠ°ΠΌΠΈ AoT ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
@chrisnicola ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ AoT? ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π»ΠΎ Π±Ρ, ΡΡΠΎ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ. ΠΠ°ΠΊ Π΅ΡΡΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ts, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΠΉΠ» Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° @ngtools/webpack Π΄Π»Ρ webpack.
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±ΠΈΠ»Π΅ΡΠ° Π±ΡΠ»Π° Β«ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π°Β» Π½Π° Π½Π°ΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2.1.1 ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠ°ΠΉΠ»Ρ index.ts. ΠΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΈ 2.4.10.
ΠΡ , Ρ Π²ΠΈΠΆΡ, Π΄Π°, Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΠ» Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠ΅ΡΠ΅Π· NPM, Ρ Π²Π°Ρ Π΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° TS Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Π― ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΠ΅ΠΉΡΠ°Ρ?
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Β«ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΒ», ΠΈ Π²Ρ ΠΏΡΠ°Π²Ρ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π·Π²ΡΡΠΈΡ ΠΊΠ°ΠΊ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ
ΠΎΠ΄ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ AoT, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠΉ Π΄Π»Ρ tsconfig.json
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ AoT.
ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ΅ΡΠΈΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅) ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΊΡΠΏΠΎΡΡΠ΅.
Π£ Π½Π°Ρ Π±ΡΠ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π±ΡΠ» ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ β ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π½Π°ΡΠ΅ΠΉ ΡΠ΅Π»ΠΈ i18n.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ (Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ):
@NgModule({ declarations: [MyUnusedComponent] })
export class IgnoreModule {}
ΠΡΡΠ³ΠΈΠΌ Π½Π°ΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, Π²ΡΠ·Π²Π°Π²ΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ, Π±ΡΠ» Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π²Π·Π»ΠΎΠΌΠ°Π²ΡΠΈΠΉ i18n.
ΠΠ½ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠ³ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ i18n, Π½ΠΎ ΡΡΠΎ Π²ΡΠ·Π²Π°Π»ΠΎ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ, ΡΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
@Component({
template: `
<div i18n="some context@<strong i="13">@some</strong> key">some text to be translated</div>
`
})
export class LocalisationComponent {}
ΠΠΏΡΡΡ ΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ IgnoreModule, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ.
@NgModule({ declarations: [LocalisationComponent] })
export class IgnoreModule {}
@UtopianStorm ΡΡΠΎ Π½Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, ΡΡΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Β«UnusedModuleΒ» Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ, Π½ΠΎ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅Π»ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ.
@Phmager ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ? Π― Π²ΡΠ΄Π΅ΡΠ³ΠΈΠ²Π°Ρ Π²ΠΎΠ»ΠΎΡΡ.
@swimmadude66 ΠΡΠΎ Π½Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, Π½ΠΎ ΠΎΠ½ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΡ.
Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΡΠΎ Π·Π°Π³ΡΠΎΠΌΠΎΠΆΠ΄Π°Π΅Ρ Π²Π°Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅? Π‘ΡΠ΄Ρ ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Angular, Ρ ΠΊΠ°ΠΊ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ», ΡΡΠΎ ΠΎΠ½ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π°Π»Π΅Π½ Π½Π°ΡΠΈΠΌΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΠ΅ ΠΏΡΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π² Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ node_modules, Π²Ρ ΡΠΎΠ³Π»Π°ΡΠ½Ρ?
ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΊΡΡΠ» Π±ΠΈΠ»Π΅Ρ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ Π΄Π²ΡΡ ΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΡΠΎΠ³, β ΡΡΠΎ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π΅ Ρ ΠΎΡΡ ΠΈΠ΄ΡΠΈ. Angular ΡΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ, ΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΠΏΡΠ°Π²Π΄Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠ΅Π»ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°ΡΡΠ»ΠΈΠ²ΠΈΡΡ ΠΈΡ ΡΠ°ΠΌΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ.
@swimmadude66 ΠΠΎΠ½ΡΡΠ½ΠΎ . ΠΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Ρ Π»ΡΡΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π· Π²Π·Π³Π»ΡΠ½Ρ Π½Π° Π½Π΅Π³ΠΎ ΡΠ°ΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π΅ Π²ΡΡΡΡΠΏΠ°Π» Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ. ΠΎΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° - ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄ΡΡΠΈΠ½Ρ.
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²Π΅Π»ΠΈΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π΅ Π½Π° 100% ΡΠΈΠΏΠΈΡΠ½Π°, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠ°Π·ΡΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, Ρ ΡΡΠΈΡΠ°Ρ.
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΠΎΡΠ»Π΅ 5 ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π·Π° ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎΡ Π±ΠΈΠ»Π΅Ρ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π΅Π»ΡΡ, ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ±ΠΈΡΡ Π½Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΎΠ±ΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠ°ΠΊ ΠΈ Ρ Π²Π°Ρ, @swimmadude66 . Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΡΠΎ Π½Π΅Π»Π΅ΠΏ.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Angular, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΡΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ?
@DzmitryShylovich ΠΠ°ΠΊ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» mock.ts
, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ? Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² tsconfig.app.json
, tsconfig.json
ΠΈ tsconfig.ng-cli.json
, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
Π‘ΡΠΎΠ»ΠΊΠ½ΡΠ²ΡΠΈΡΡ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ β ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Rollup, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄Π°Π²ΠΈΡΠ΅ ΡΡΠΎ! ΠΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΡ, ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ.
Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΈΠΌ, ΡΠ°ΠΊ ΡΠ΅ΡΡΠΎΠ²ΡΠΊΠΈ ΡΠ°ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ.
@mlakmal ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΊΠΎΠ΄Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
export class CustomGlobalModalComponent extends AppGlobalModalComponent {}
Π£Π΄Π°Π»ΠΈΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Component
ΠΈΠ· AppGlobalModalComponent
ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ AppGlobalModalComponent
(Π΅ΡΠ»ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ) Π² NgModule
Π― ΡΠΎΠ·Π΄Π°Π» ΡΠΈΠΊΡΠΈΠ²Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΡΠ°Ρ . Π ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ AOT. Π― Π½Π΅ Ρ ΠΎΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π² ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΠ²ΡΠ·Π°Π½ Π»ΠΈ ΡΠ΅Π³ Β«freq1: lowΒ» Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ ΡΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠΌ, ΡΡΠΎ AoT β ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ Π·Π°Π½ΠΎΠ·Π° Π² Π·Π°Π΄Π½ΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΡΠΎ Π»ΡΠ΄ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ? ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ, Π½ΠΎ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΈΠΊΠ° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Angular.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈΡΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, .spec.ts
, .abstract.ts
, .stfu-aot.ts
), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» tsconfig.json
Π΄Π»Ρ AoT ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ: ngc -p tsconfig-aot.json
. Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ "exclude": ["./app/**/*.stfu-aot.ts"]
Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ, Π½ΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ abstract
, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π£ΡΠ° :(
Π― ΡΠΎΠΆΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΈΠΌ, ΡΠ°ΠΊ ΡΠ΅ΡΡΠΎΠ²ΡΠΊΠΈ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²ΡΠ²Π°Ρ. ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ aot ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ @Component Π² ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ ΡΠ»ΡΠΆΠ±:
// just remove this
@Component({
providers: []
});
@Injectable()
export class serviceClass {}
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ Π²Π½Π΅Π΄ΡΡΡ ΡΠ»ΡΠΆΠ±Ρ Π² ΡΠ»ΡΠΆΠ±Ρ. ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ @Component. ΠΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Angular Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²: Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΡΠ΄Π°Π»ΠΈΠ» @Component. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»:
constructor(@Inject(ExampleService) private exampleService: ExampleService)
Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @Component()
ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ. Π’ΠΎΠ»ΡΠΊΠΎ @Injectable()
FWIW Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ MockXYZComponent
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ XYZComponent
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡ
(ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ Π² AppModule
).
Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ?
@alastair-todd Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΡΡ ΠΈΠΌΠ΅Π΅ΡΡ Π² Π²ΠΈΠ΄Ρ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @Component()
. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ - ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ, Π° ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π½Π° Β«ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠ΅Β».
ΠΠ°ΡΡΠ΅Ρ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ - Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ TestModule? Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
@tytskyi Π― ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ?
Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ - ΠΈΠ·Π΄Π΅Π²Π°ΡΡΡΡ Π½Π°Π΄ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. ΠΠ±Π° Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ @Component Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ°.
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
AppModule
]
}).overrideModule(AppModule, {
remove: {
declarations: [SelectionToolComponent]
},
add: {
declarations: [MockSelectionToolComponent]
}
}).compileComponents();
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ OP AOT.
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ AOT ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ ΡΡΠ΅ΡΠ΄Π½Π° ΠΈ / ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ: Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π» ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ β ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ AoT. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΈΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°.
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΡΠ»ΡΡΠ°ΡΡ ΠΎ Π»ΡΠ±ΠΎΠΌ Π»ΡΡΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ.
ΠΡΠΎ ΡΠ°ΠΊ ΡΡΡΠ°Π½Π½ΠΎ ΠΈ Π½Π΅Π»ΠΎΠ²ΠΊΠΎ, ΡΡΠΎ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° ΠΎΡΠΊΡΡΡΠ° Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ 2016 Π³ΠΎΠ΄Π° ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π― ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π» ΡΡΡΡΠΊΡΡΡΡ Π²ΡΠ΅Π³ΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ 4 ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π»Π΅Π½ΠΈΠ²ΠΎ, ΠΈ Π±ΠΎΠ»Π΅Π΅ 60 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΆΠ°Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°), ΠΊΠΎΡΠΎΡΡΠ΅, Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π»Π΅Π½ΠΈΠ²ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΡΠΎ ΠΌΠ½Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½ΠΎ.
ΠΡΠΎ Π΄Π°ΠΆΠ΅ Π΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Angular ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π² tsconfig, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡΡΡΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ ΠΈΠ· ΡΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
ΠΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ :(
@ alastair-todd ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Ρ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° ΡΡΠ΅Π΄ΠΈ ΠΊΡΡΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. Π’Ρ ΠΏΡΠ°Π² -
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
Π‘ΠΌ. ΠΎΡΠ²Π΅Ρ ΠΎΡ @robwormald
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Angular ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π² tsconfig, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡΡΡΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ ΠΈΠ· ΡΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΠΊΡΠΈΠ²Π½ΡΡ
ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: selection-tool.component.mock.ts
. ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π·
"exclude": [
//... other excludes
"**/*.component.mock.ts"
]
ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π°ΠΆΠ°Π» Π½Π΅ Π½Π° ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅!
+8 ΠΌΠ΅ΡΡΡΠ΅Π², ΠΈ ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ ERROR in Cannot determine the module for class PasoFooterComponent
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Angular ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ.
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°ΡΡ, Π³Π΄Π΅ Ρ ΠΌΠΎΠ³Ρ Π½Π°ΠΉΡΠΈ ΡΡΠΎΡ ΠΊΠΎΠ΄, Ρ Π±ΡΠ΄Ρ ΡΠ°Π΄
ΡΠ°ΠΌΠΎΠΌΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ. ΠΡΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ. ΠΠ±Π΅ΠΆΠ°Π» Π² ΡΡΠΎ
ΠΎΠΏΡΡΡ Π²ΡΠ΅ΡΠ°.
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π΄ΡΠΌΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ ΡΠΈΡΠ°, Π° Π½Π΅ Π±Π°Π³, ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΡΠΌΠ΅ΡΠΊΡ?
Π·Π° ΡΡΠΎ?
Π ΡΡΠ΅Π΄Ρ, 9 Π°Π²Π³ΡΡΡΠ° 2017 Π³., Π² 2:40, ΠΠ΅ΠΎΠ½Π°ΡΠ΄ΠΎ ΠΠΈΠ΄Π°Π»Ρ, [email protected]
Π½Π°ΠΏΠΈΡΠ°Π»:
+8 ΠΌΠ΅ΡΡΡΠ΅Π², ΠΈ ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ ΠΠ¨ΠΠΠΠ Π² Cannot
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° PasoFooterComponentβ
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/angular/angular/issues/13590#issuecomment-321082545 ,
ΠΈΠ»ΠΈ Π·Π°Π³Π»ΡΡΠΈΡΡ ΡΠ΅ΠΌΡ
https://github.com/notifications/unsubscribe-auth/AEM6r7FOTLcicWJN3Oijw2pwKTLGL6cFks5sWM61gaJpZM4LSAwS
.
@samirotiv Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ?
ΠΠ°ΠΊ ΡΠΊΠ°Π·Π°Π» @robwormald
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Angular ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π² tsconfig, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡΡΡΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ ΠΈΠ· ΡΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π΅Π΅ ΡΠ΅ΡΠΈΡΡ. Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π», ΠΊΠ°ΠΊ ts ΡΡΠ°Π½ΡΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
"tsc": "rimraf out-tsc/app && tsc -p ./src/tsconfig.app.json",
Π Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π» ΠΌΠΎΠΈ Π»Π΅Π½ΠΈΠ²ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ tsconfig Β«ΡΠ°ΠΉΠ»ΡΒ».
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ (Π±Π΅Π· Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ²)
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΡΠ°ΠΌ Π½Π°ΡΠ°Π» ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
+1 Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ. ΠΠΎΡΠ΅ΠΌΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°?
ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π±Π΅Π· ΡΡΡΠ»ΠΎΠΊ.
ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
ΠΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ angular. ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±Π΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΊΠ°ΠΊ Π΄Π»Ρ HttpClient
(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Angular >= 4.3), ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Http
(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Angular < 4.3).
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ngc Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²Π½ΡΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²Ρ ΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ! ΠΈΠ»ΠΈ ΡΠ±ΠΎΡΠΊΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π― ΡΠ΄Π΅Π»Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π― ΡΠΎΡ ΡΠ°Π½ΠΈΠ» Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ-Π·Π°Π³Π»ΡΡΠΊΠΈ/ΠΌΠ°ΠΊΠ΅ΡΡ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .mock.ts ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΌΠ°ΡΡΠΈΠ² Β«excludeΒ» tsconfig.app.json ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
...
"exclude": [
"test.ts",
"**/*.spec.ts",
"**/*.mock.ts"
]
...
AOT ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΡ Π΄Π΅Π»Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ npm Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ Π²ΡΠ΅ ΡΡΠ°Π·Ρ ΠΈ Π±Π΅ΡΡΡΡΡ ΠΈΠ·-Π·Π° ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ AoT, ΡΠ΅ΡΡ Π²ΠΎΠ·ΡΠΌΠΈ... ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ atm - ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ UnusedComponentsModule Π² Ρ
ΠΎΡΡ-ΠΏΡΠΎΠ΅ΠΊΡΠ΅ - ΠΏΡΠΎΡΡΠΎ ΡΠΌΠ΅ΡΠ½ΠΎ! Π’Π°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ NO_ERRORS_SCHEMA
ΠΈΠ»ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΡΠ³Π°ΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π²Π½ΡΡΡΠΈ Π²Π°ΡΠΈΡ
Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡ
ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅, ΡΠΎ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² Π΄Π²ΡΡ
ΠΌΠΎΠ΄ΡΠ»ΡΡ
(ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ # 10646).
ΠΠΎΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ:
import {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';
import {CommonModule} from '@angular/common';
import {ReceiverPageComponent} from 'cb-web-platform';
@NgModule({
imports: [
CommonModule,
],
declarations: [
ReceiverPageComponent
],
schemas: [
NO_ERRORS_SCHEMA // IMPORTANT: need that for AoT compilation
]
})
export class UnusedComponentsModule {
}
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ. Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ
ΡΡ ΡΠ°ΡΡΡΡ ngmodule.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ; Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
ΠΡΠΎ Π»Π΅Π³ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄. ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ³Π»ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ NPM (ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠ΅ΡΡΠ²ΡΠΉ ΠΊΠΎΠ΄), ΡΠΎ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π½ΠΎΠ·Π° Π² Π·Π°Π΄Π½ΠΈΡΠ΅ :)
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ?
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΡΠΎΡΡΠΎ Ρ
ΠΎΡΡ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠ·ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ngModule, ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΠ°ΠΏΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΡΠ°ΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ xi18n, ΠΎΠ½ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Cannot determine the module for class...
, ΠΊΠΎΡΠΎΡΡΡ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠ΄Π½Π° Π²Π΅ΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΌΠΎΠ³Ρ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΡΠΎΠΌ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π½ΠΎ ΠΌΠ½Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
@Xesenix, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΡΠΎΠ΄Π΅ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡΠΌΠΎΠ΄ΡΠ»Ρ = Π»ΠΎΠΆΡ/ΠΈΡΡΠΈΠ½Π°. Π’Π΅ΠΏΠ΅ΡΡ Π±Π°Π½Π°Π½Ρ.
Π― Π²Π΅ΡΠ½ΡΡΡ 01.11.2017.
Π― ΠΎΡΠ²Π΅ΡΡ Π½Π° Π²Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΅Π³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ.
Π ΡΡΠΎΡΠ½ΡΡ
ΡΠ»ΡΡΠ°ΡΡ
, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠΏΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΈΡΡΠΌΠ° Π΄Π»Ρ
ΠΏΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ [email protected] , Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
[email protected]. ΠΠ°ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡ Π²Π°ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ.
ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΡΠ²Π΅Ρ Π½Π° Π²Π°Ρ Β«Re:
[angular/angular] ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Angular2 AOT - Β«ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° (... ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²)" (#13590)" ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ
23.10.2017 08:13:17.
ΠΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ
ΡΡΠΎΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ.
ΠΠ°ΠΊ ΡΡΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΡΡΠΈ 1 Π³ΠΎΠ΄ ΡΠΏΡΡΡΡ? Π Π²Ρ Π²ΠΎΠ»ΠΎΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ AOT ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ°Π²ΠΈΡ ΠΌΠ΅Π½Ρ Π² ΡΡΠΏΠΈΠΊ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @rahul-sivalenka-wtc Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅!
ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΌΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈΡΠΊΠ»ΡΡΠΈΠ² "**/*.mock.ts"
ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ tsconfig.app.json
, ΠΊΠ°ΠΊ Π²Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ β€οΈ
Π Π°Π΄, ΡΡΠΎ ΡΠΌΠΎΠ³ ΠΏΠΎΠΌΠΎΡΡ π
Π― ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΡΠ΅ΡΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π» ΠΏΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠ° dodule
Π»ΡΠ±ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ? (Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° angular 5)
https://stackoverflow.com/questions/47119135/cannot-determine-the-module-for-component-angular-5
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π½Π° severity3: broken
. ΠΠ»Ρ ΡΠ΅Ρ
ΠΈΠ· Π½Π°Ρ, Ρ ΠΊΠΎΠ³ΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»Π΅ΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π²ΡΡΠ΅), ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅Π· ΡΡΠΌΠ°ΡΡΠ΅Π΄ΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? IgnoreModule β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, Π½ΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ!
ΠΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ transform
Π² @ngtools/webpack
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ , ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ifdef
, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠ΅Π½Ρ-ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΊΡΠ°ΡΠΈΠ²ΠΎ, Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ³Π»ΠΎΠ²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² app.module.ts, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
` ---------------- ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ -----------------------
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {BrowserModule} ΠΈΠ· '@angular/platform-browser';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {CommonModule} ΠΈΠ· "@angular/common";
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {NgModule} ΠΈΠ· '@angular/core';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ { RouterModule, Routes } ΠΈΠ· '@angular/router';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {HttpModule} ΠΈΠ· '@angular/http';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {ReactiveFormsModule} ΠΈΠ· '@angular/forms';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {BrowserAnimationsModule} ΠΈΠ· '@angular/platform-browser/animations';
-------------ΠΠ°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ------------------------
import {ApplyFormPostService} ΠΈΠ· './Services/apply-form-post.service';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ { NavBarColorService } ΠΈΠ· './Services/nav-bar-color.service';
----------------------- ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΈΠΌΠΏΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ----------------------- -
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {AppComponent} ΠΈΠ· './app.component';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ { HeaderComponent } ΠΈΠ· './components/header/header.component';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ { CareerComponent } ΠΈΠ· './components/career/career.component';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ { HomeComponent } ΠΈΠ· './Components/home/home.component';`
ΠΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ AOT. ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° --- Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
@KarthikSamyak ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΠΎ Π»ΡΠ΄ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠΠΠΠΠ« Π±ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅. Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠ΅Ρ ΠΈΠ· Π½Π°Ρ, Ρ ΠΊΠΎΠ³ΠΎ Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ ΠΈΠ· Π²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΡΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°Π΅Ρ Π½Π΅ΠΈΡΠΏΡΠ°Π²ΠΈΠΌΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΡ .
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΡΠΎ Π·Π°Π½ΡΠ»ΠΎ ΠΠΠΠ¬Π¨Π ΠΠΠΠ ΠΈ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ· pri_col1 Π² pri_col2 Π² Π΄ΠΎΡΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠ΅.
Π― Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²ΡΠ²Π°ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Angular ΠΈΠ·-Π·Π° ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ°Π·Π°Π»Π°ΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ΅ΡΠΈΠ² Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π²ΡΡΡΠ½ΡΡ. ΠΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ.
ΠΠΎΠΌΠ°Π½Π΄Π° Angular, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ Β«ignoreUnusedComponentsΒ» ΠΈ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ.
Π₯ΠΎΡΠΎΡΠΎ, Ρ Π½Π°ΡΠ΅Π» ΠΌΠ΅ΡΡΠΎ https://github.com/angular/angular/blob/master/packages/compiler/src/aot/compiler.ts#L605 @tbosch ΡΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠΎΡΡ Π·Π΄Π΅ΡΡ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ? Π ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ AoT Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠΏΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΡΡΠ΅.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ: https://github.com/angular/angular/issues/13590#issuecomment -331820496.
ΠΠ°Ρ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅. ΠΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠΌΠ΅ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ/ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΠΎΠ±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΌΠ΅Π½ΡΡΡ/ΡΠ°ΡΡΠΈΡΡΡΡ Π½Π΅ΡΠ΅ΡΠ½ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅: Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ 1x Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠ΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½Ρ:
import { HeaderComponent, SidebarComponent } from '@mylibs/layout';
import { FooterComponent } from './footer.component';
@NgModule({ declarations: [ HeaderComponent, SidebarComponent, FooterComponent ] })
export class MyLayoutModule { }
@NgModule({ imports: [ MyLayoutModule ] })
export class AppModule { }
ΠΡΠΈΠ±ΠΊΠ°: `HeaderComponent ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² 2 ΠΌΠΎΠ΄ΡΠ»ΡΡ
: lib/module.ts ΠΈ app/module.ts.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Ρ Π½Π°ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ :(
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΠ½ΡΠ» - Ρ ΠΠ½Π΅ΠΌ Π ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ :)
ΠΠΎΠ΄ ΡΠΏΡΡΡΡ, ΠΈ ΠΌΡ ΠΠ‘Π ΠΠ©Π Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ΅Π»Π΅ΠΏΡΠΉ.
ΠΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΡΡΠ°Ρ , ΠΈ ΡΠ΅ΡΠΏΠΈΡ Π½Π΅ΡΠ΄Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠ»ΠΈ ΠΎΠ½ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π΅ΠΌΡ Π½Π΅ Π½ΡΠΆΠ΅Π½, ΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°ΠΌΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ!
ΠΠΎΠΉ ΠΎΠ±ΡΠΈΠΉ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ±ΠΎΡΠΊΠΎΠΉ angular 5 aot Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π·Π²Π΅Π·Π΄Π½ΡΠΉ.
ΠΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ https://gitter.im/angular/angular?at=5a551f565a9ebe4f756843b2 ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π½Π΅ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ±ΡΠ°ΡΡ Π²Π΅ΡΠΈ Π²ΠΌΠ΅ΡΡΠ΅. .
ΠΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ.
@Xesenix ... ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ - Π΄Π²Π΅ ΡΠ°ΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ.
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π·Π°ΡΡΡΡΠ» Ρ ΡΡΠΈΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ.
const replace = require('replace-in-file');
const filesToFix = [
{
files: 'node_modules/@angular/compiler/esm2015/compiler.js',
from: ['throw syntaxError(messages.join(\'\\n\'));'],
// Actually this does nothing , just leave it blank should do
to: [`console.warn(\'Angular compiler warning\');\n\t\tconsole.warn(messages.join(\'\\n\'));`]
}
]
filesToFix.forEach((i) => {
try {
const changes = replace.sync(i);
if (changes.length > 0) {
console.log('Modified files:', changes.join(', '));
}
}
catch (error) {
console.error('Error occurred:', error);
}
});
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ angular Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΈΠ· tsconfig, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ _tsconfig.app.json_ , ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ.
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
"exclude": [
"test.ts",
"**/*.spec.ts",
"**/*.mock.component.ts",
]
@andela-andrewmakenzi ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΌ Π³ΠΈΠ³Π°Π½ΡΡΠΊΠΎΠΌ ΡΠ°ΡΠ΅ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ ΡΡΡΠ΄Π½ΠΎ Π½Π΅ ΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠΎ). ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π²ΠΈΡΠΈΡΠ΅ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ (index.ts). ΠΡΠ»ΠΈ Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π±ΠΎΡΠΎΠ½ΠΊΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π±Π°ΡΡΠ΅Π»Ρ, ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΡΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠΌΡΡΠ»ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
ΠΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΡ) ΠΏΠΎΠΏΡΡΠ°Π»Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ TSC, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
@andela-andrewmakenzi: Π²Π°ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΠΏΠΎΠΊΠ° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ, ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ (.spec), ΠΈ Ρ Π½Π΅ Ρ ΠΎΡΠ΅Π» Π±Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π±ΡΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ Π² AOT-ΡΠ±ΠΎΡΠΊΡ (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π― Π±Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ Ρ ΠΎΡΠ΅Π», ΡΡΠΎΠ±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ Π² ΠΌΠΎΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠΈΠΈ) ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎ ΠΊΠ°ΠΊ-ΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Angular, Ρ Π΄ΡΠΌΠ°Ρ :)
ΠΠΎ ΠΌΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π»ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΡΠ»ΠΎΠΊ Π² NgModule, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ Π΄Π»Ρ Π½ΠΈΡ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ Π² tsconfig.json, ΡΡΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΠ½ΠΎ.
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅ΡΠ½ΠΎ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ NPM, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΡΡΠΈΠΉ ΠΏΠ°ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ²/Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ², ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΠ‘Π, ΠΎΠ½ Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΡΡΡΠΎΡ Ρ ΡΡΠΎΠΉ Π³Π»ΡΠΏΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΈ ΠΎΠ½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ NgModule
. ΠΠ΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΡΡΡΠ°ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ NgModule
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. (ΠΠ°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» @angular/material
)
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎ-ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π° ΠΏΠΎΠ»ΠΏΡΡΠΈ. ΠΠ΅ NgModule
, Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ, Π½Π΅ Π²Π½Π΅ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ... ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅Π΅ Π½Π° ΠΌΠ΅ΡΡΠ²ΡΠΉ ΠΊΠΎΠ΄.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ Π½ΠΎΠ²ΡΠΌ @angular/cli (1.7.0+) Π΄Π°ΠΆΠ΅ IgnoreModule ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ NgModule.
ΠΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΡ? ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ² Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΡΠΌ.
@sarunint Π ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΎΠΌΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΊΡΡΠ» ΡΡΠΎΡ Π±ΠΈΠ»Π΅Ρ, ΡΡΠΎ Π±ΡΠ΄ΡΡ ΡΠΎΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π£ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ Π² tree-shaking.
ΠΠ°ΡΡΠΎΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎ ΡΠ°ΠΊ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΠΏΠΈΠ»ΡΠ½ΠΈΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠΊΠΎΡΠ΅Π΅ ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ, ΡΠ΅ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ. Π£Π΄ΠΎΠ±Π½ΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠΏΠΎΡΡ, Π½ΠΎ Π½Π΅ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ Π²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
@dborisenkowork Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π²Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ (ΠΈΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ), Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ @rahul-sivalenka-wtc, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Ρ angular 4 Π½Π° angular 5 ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ , Π²ΡΠ΄Π°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ?
@novologic-clay ΠΊΠ°ΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°? Π’Π΅ΠΌΠ° Π΄Π»ΠΈΠ½Π½Π°Ρ, Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Angular2 AOT - Β«ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° (... ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ)Β» ?
@andela-andrewmakenzi ΠΠ° ΠΈ Π½Π΅Ρ. ΠΡΠΎ ΡΠ° ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΠΆΠ°Π»ΡΠ΅ΡΡΡ, Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΌΠΎΠ΄ΡΠ»Ρ. Π― ΠΏΠ΅ΡΠ΅Ρ ΠΎΠΆΡ Ρ 4.3.6 Π½Π° 5.2.4, ΠΈ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ angular ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ AOT Π½Π° 4.3.6 ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π» ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΡΠΌΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ°. .
@novologic-clay, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ?
... ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅Π»ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ $ tsconfig.json
"noUnusedLocals": true
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΡΠ°Π½ΡΠ΅Ρ Π²ΡΠ΅, ΡΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
@andela-andrewmakenzi
ERROR in : Cannot determine the module for class InlineAddComponent in /Users/claygarland/CatalsytConnect/frontend/Talon/src/app/core/component/input/inline-add/inline-add.component.ts! Add InlineAddComponent to the NgModule to fix it.
ΠΡΠΎ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Π² Π½Π΅ΠΌ Π΅ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΎΠ², Π½ΠΎ ΡΡΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ:
**COMPONENT:**
import {Component, Inject, Input} from '@angular/core';
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material';
import {ActivatedRoute} from '@angular/router';
import {BaseForm} from '../../form/form/BaseForm';
import {FormDataService, FormDataServiceProvider} from '../../form/form/FormDataService';
import {BaseApi} from '../../../api/BaseApi';
@Component({
selector: 'inline-add',
templateUrl: './inline-add.component.html',
styleUrls: ['./inline-add.component.scss'],
providers: [
FormDataServiceProvider
]
})
export class InlineAddComponent extends BaseForm {
@Input() title = 'Entity';
@Input() formName;
protected service: BaseApi;
constructor(
protected route: ActivatedRoute,
protected formDataService: FormDataService,
public dialogRef: MatDialogRef<InlineAddComponent>,
@Inject(MAT_DIALOG_DATA) public data: {
form: string,
title: string,
service: BaseApi,
},
) {
super();
this.title = data.title;
this.formName = data.form;
this.service = data.service;
}
submit() {
super.onSubmit(res => {
this.dialogRef.close(res.data[0]);
});
}
onCancel() {
this.dialogRef.close(false);
}
}
**MODULE:**
import { NgModule } from '@angular/core';
import {SharedModule} from '../../../shared/shared.module';
import {InlineAddComponent} from './inline-add/inline-add.component';
@NgModule({
imports: [
SharedModule,
],
declarations: [
InlineAddComponent,
],
exports: [
InlineAddComponent,
],
entryComponents: [
InlineAddComponent,
]
})
export class FormInputsModule { }
Π’Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ng serve, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΠΎΠ΄Π΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅; ΠΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² TestBed ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π³Π»ΡΠΏΠ°. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ΅ΡΠΈΡΠ΅ ΡΡΠΎ ΠΊΠ°ΠΊ Π΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°.
ΡΠ±Π΅ΡΠΈΡΠ΅ "ΡΠΊΡΠΏΠΎΡΡ", ΡΡΠΎΠ±Ρ ts Π½Π΅ Π²Π·ΡΠ» Π΅Π³ΠΎ Π² ΡΠ±ΠΎΡΠΊΡ.
@tony-kaplan ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ tsconfig Π½Π΅Ρ UnusedLocals ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ .
ΠΠΎΠΆΠ΅ ΠΌΠΎΠΉ.... Π½Π΅ΡΠΆΠ΅Π»ΠΈ Π½ΠΈΠΊΡΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ Π½Π°ΡΠ΅Π» Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ?
Π― ΠΏΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠΈΡ exclude
, Π½ΠΎ ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΎ Π±Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠΈΡΡΠ°ΡΠΈΠΉ... Π½ΠΎ ΠΌΠ½Π΅ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π½ΡΠΆΠ½ΠΎ...
@gabrielalan ΠΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΠΎ Π½Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ .
Π, ΠΏΠ°ΡΠ΅Π½Ρ! Π’Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ...
@atom-morgan, ΠΎ ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΡΠΈ Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅?
@netlander ΠΡΠΎΡ
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Β«ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° DaterangepickerDirectiveΒ»?
ΠΠ½Π΅ ΡΠΎΠΆΠ΅ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ? ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Π³Π°Π·ΠΎΡΠ΄ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°!
Π― Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² tsconfig.app.json Π½ΠΎΠ²ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ! ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --aot Π±Π΅Π· ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ https://github.com/angular/angular/issues/23475
Π― ΡΠΎΠ·Π΄Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠΎΠ², ΠΈ Ρ Π½Π΅ Ρ
ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠ°, Π²ΡΠ΅, ΡΡΠΎ Ρ Ρ
ΠΎΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠ° Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ npm, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΠΌΡ Π½ΡΠΆΠ½Ρ, Π² NgModule. Π’Π°ΠΊΠΆΠ΅ Ρ Π½Π΅ Ρ
ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΡΡΠ°ΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
Π― ΡΠ°Π΄ ΡΠΎΠ·Π΄Π°ΡΡ PR, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
@anjmao , ΡΡΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΎΡΠΊΡΡΠ» ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ (index.ts). ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ 1 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ/Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΎΠ½ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΊΡΠΏΠΎΡΡΠΎΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Π°Ρ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΆΠ΄Π°ΡΡ Π΅ΡΠ΅ Π³ΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈ Π΅Π³ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²/Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²/ΠΊΠ°Π½Π°Π»ΠΎΠ²: ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π²Π°ΡΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΡΠ²ΡΠΈΠΉ:
import { NgModule } from '@angular/core';
@NgModule({
imports: [],
declarations: [
MyComponent,
MyPipe,
MyDirective,
...
],
})
export class DummyModule {
}
ΠΡΡΡ Π»ΠΈ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Β«Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌΒ» Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΡΠΌ? ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΠ»Π΅Π½ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ?
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ NG 5, CLI ΠΈ AOT Π²ΡΠ΅ Π±ΡΠ»ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎ NG 6 Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π΄Π»Ρ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ»ΡΠΆΠ±Ρ, Π²Π½Π΅Π΄ΡΠ΅Π½Π½ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ NG CLI 6.0 ΠΈ 6.0.1.
Π ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΡΠ»ΠΎΠΊ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ°ΠΉΠ» Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ index.ts Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. Ρ ΠΈΠΌΠ΅Π»
export * from './dateTimePicker.component'
Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±ΡΡΡ:
ΡΠΊΡΠΏΠΎΡΡ * ΠΈΠ· './datetimePicker.component';
ΠΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, NG CLI 6 Π±ΠΎΠ»Π΅Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ° Π΄Π°ΠΆΠ΅ Π² Windows, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ NG CLI 1.x Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠ»Π°Π±Π»ΡΠ΅Ρ.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΌ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ° ΠΆΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° ΠΌΠΎΠΆΠ΅Ρ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Linux, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ.
ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ:
Typescript ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠ΅ΠΉ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ paths
Π² tsconfig.json
. ΠΡΠ²ΡΠΈΠΉ:
{
...
"paths": {
"~src/*": ["src/*", "src-gen/*"]
}
}
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ:
import { NgModule } from "@angular/core";
import { ExampleComponent } from "~src/example.component";
@NgModule({
declarations: [
ExampleComponent
],
})
export class ExampleModule {}
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²Π½ΡΡΡΠΈ src-gen
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Β«ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΒ», ΡΠΎΠ·Π΄Π°Π² Π΄ΡΡΠ³ΠΎΠΉ Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ src
, ΡΠ° ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ Ρ (ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Π²Π½ΡΡΡΠΈ src-gen
(ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ).
ΠΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ. Π― ΡΠ°Π·Π΄Π΅Π²Π°Ρ ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°.
const environmentComponents = production ? [] : [
DevOnlyComponent,
];
@NgModule({
declarations: [
...environmentComponents,
],
})
export class ExampleModule {
}
ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΡΠ΅Π΄Ρ, ΠΈ ΡΡΠΎ ΠΌΠ΅Π½Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ. πͺ
ΠΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ (ΠΎΠ±ΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Angular CLI), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ @tiagodws (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°).
ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅/ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ?
Π‘ΠΏΡΡΡΡ Π³ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ ΠΎΡΠΊΡΡΠ» ΡΡΠΎΡ Π²ΡΠΏΡΡΠΊ, ΠΌΠΎΠΉ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅ΡΡΠΈ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°ΡΡΠ΅Π»Π΅ΠΉ. ΠΡΠ»ΠΈ Π²Ρ Π²Π΅Π·Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΡΡΠΈ TS, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ~components/button/component
, Π² Π²Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠ΅, Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ. ΠΡΠ»ΠΈ Π½Π° ΡΡΠΎΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π² ΡΠ°ΠΉΠ»Π΅ Π±ΠΎΡΠΎΠ½ΠΊΠ°, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π±ΡΠΎΡΠ΅Π½.
ΠΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠΎΡΠ΅ΠΌΡ, ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ?
Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²ΡΡΡΡΡ ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π° (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Π½ΠΈΠΌ), ΠΊΠΎΠ³Π΄Π° Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄, Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π² ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΎΠΏΡΠΈΡ exclude Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΈΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΡΡΠ±Ρ:
@Pipe({ name: 'translate' })
export class MockTranslatePipe implements PipeTransform {
transform(value: string): string {
//Do stuff here, if you want
return value;
}
}
ΠΠΎΠΉ tsconfig.app.json ΠΈΡΠΊΠ»ΡΡΠΈΠ» ΡΡΠΎΡ ΡΠ°ΠΉΠ»:
"exclude": [
"test.ts",
"**/*.mock.ts",
"**/*.spec.ts"
]
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ng-xi18n --i18nFormat=xlf2 --outFile=./assets/i18n/messages.xlf, ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΆΠ°Π»ΡΠ΅ΡΡΡ:
ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° MockTranslatePipe Π² src/test/translate.service.mock.ts! ΠΠΎΠ±Π°Π²ΡΡΠ΅ MockTranslatePipe Π² NgModule, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ.
ΠΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° Π² Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ΠΏΡΡΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ, Π»ΠΎΠ»! ΠΠΎΠ·ΠΆΠ΅ ΡΠ° ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΡΠΎ ΠΈ Π±Π΅Π·ΡΠ°Π·Π»ΠΈΡΠΈΠ΅. Π₯ΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ½Π΅ΠΉ! Ρ ΠΈΡΡ...
ΠΠΎΠ΄ΠΏΠΈΡΡ: Π‘Π°ΡΠΎΡΠΈ ΠΠ°ΠΊΠ°ΠΌΠΎΡΠΎ: v
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ @yuezhizizhang , Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ glob Π΄Π»Ρ mocks ΠΊ ΠΏΡΡΠΈ tsconfig.app.json exclude
.
ΠΡΠΎ ΠΏΠΎΡΡΠΈ Π±Π΅ΡΠΈΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ»Π΅ΡΠ°; ΡΡΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΠΠ Π£Π¨ΠΠΠ’ ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π² ΠΈΠ΄Π΅Π°Π»Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΠΊΠΈ Π΄Π»Ρ ΠΏΠ°ΠΉΠΏΠΎΠ², ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, ΡΠ°Π·Π²Π΅ ΡΡΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π²Π°ΡΠ° ΡΠ±ΠΎΡΠΊΠ° ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ/ΡΡΡΠ±Ρ/ΠΈ Ρ. Π΄., ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΠ°ΠΌ.
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Angular ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ? Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΌΠΎΠΊΠΎΠ² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ? ΠΡΠΎ ΠΏΠ»ΠΎΡ ΠΎΠΉ Ρ Π°ΠΊ, Π° Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ. Π― ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Ρ
ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ (Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ), Π² ΡΠ°Π·Π΄Π΅Π» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ tsconfig.app.json
ΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ:
ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° MapElementBaseComponent Π² .../map-elements/map-element-base.component.ts! ΠΠΎΠ±Π°Π²ΡΡΠ΅ MapElementBaseComponent Π² NgModule, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ.
Π― ΠΈΠ·Π±Π°Π²ΠΈΠ»ΡΡ ΠΎΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠΌΠΏΠΎΡΡΠ°
ΡΡ, 14 Π½ΠΎΡΠ±. 2018 Π³., 15:13 ΠΠ°Π½ΠΈΡΠ»Ρ ΠΡΠΎΡ [email protected] :
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ. Π― ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Ρ Ρ ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅
(Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ) Π² ΡΠ°Π·Π΄Π΅Π» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ tsconfig.app.json, ΠΈ Ρ
Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ:ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° MapElementBaseComponent Π²
.../map-elements/map-element-base.component.ts! ΠΠΎΠ±Π°Π²ΠΈΡΡ MapElementBaseComponent
Π² NgModule, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ.β
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/angular/angular/issues/13590#issuecomment-438641324 ,
ΠΈΠ»ΠΈ Π·Π°Π³Π»ΡΡΠΈΡΡ ΡΠ΅ΠΌΡ
https://github.com/notifications/unsubscribe-auth/AQb6kpWdkakUF8JVvea8Hy42tAnTKTuzks5uvAjvgaJpZM4LSAwS
.
ΠΠΎΠ³Π΄Π° TypeScript ΡΡΡΠΎΠ³ΠΈΠΉ, ΠΈΠΌΠΏΠΎΡΡ Angular, Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ AOT Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ... ΠΡΠΎΠ²Π΅ΡΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ/ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°...
Π£Π΄Π°Π»ΡΡ ΠΏΠ°ΠΏΠΊΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° ΡΠ΄Π°Π»ΡΡΡ ΡΡΡ ΠΏΠ°ΠΏΠΊΡ Π²ΡΡΡΠ½ΡΡ.
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅Π»Π΅ΠΏΠ°. Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ» ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
const landingComponents = {
'landing-root': LandingComponent,
'get-notified': GetNotifiedComponent,
'typed-component': TypedComponent,
'sticky-bar': StickyBarComponent,
};
Π·Π°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ declarations: Object.values(landingComponents)
, entryComponents: Object.values(landingComponents)
.
Π£Π³Π°Π΄Π°ΠΉΡΠ΅, ΡΡΠΎ... ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ AOT Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅... Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΠΌ Π΅Π³ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Ρ ΠΏΠΎΠ»ΡΡΡ ΡΡΠΎ ΡΠΆΠ°ΡΠ½ΠΎΠ΅ "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ°".
ΠΠ°ΠΊ Π±Ρ Ρ Π½ΠΈ Π»ΡΠ±ΠΈΠ» Angular, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ AOT ΠΊΠ°ΠΆΠ΅ΡΡΡ Ρ Π°ΠΎΡΠΈΡΠ½ΠΎΠΉ ΡΠΌΠ΅ΡΡΡ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠΉ.
ΠΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠ°ΡΡ ΡΠ°Π·, Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β 1 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π»ΠΈ Π²Ρ ΠΈΠ· PR Π² Angular, Π½ΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅ΠΌΡ: https://github.com/ ΡΠ³Π»ΠΎΠ²ΠΎΠΉ/ΡΠ³Π»ΠΎΠ²ΠΎΠΉ/ΡΡΠ½ΡΡΡ/27481
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΡΠΎΠΌΡ Π²ΡΠΏΡΡΠΊΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ 2 Π³ΠΎΠ΄Π° π
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½ΠΈ ΡΠ»ΠΎΠ²Π° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ.
@tiagodws, Π»ΠΎΠ», ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ ΡΡ ΠΆΠ΄Π°Π», ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΡΠΎ? ΠΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅?
ΠΡΠΎΡΡΠΎ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ https://github.com/angular/angular/issues/13590#issuecomment -389113560
ΠΠΌΠΏΠΎΡΡ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ AOT.
@peterdeme ... JavaScript ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ (ΠΈ ΠΏΡΡΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ ... = Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Linux, Π° Π½Π΅ Windows).
ΠΠΉ, ΡΠ΅Π±ΡΡΠ°, ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π·Π°ΠΏΠΎΠ·Π΄Π°Π»ΠΎΠΌΡ ΠΏΡΠ°Π·Π΄Π½ΠΎΠ²Π°Π½ΠΈΡ 2-Π»Π΅ΡΠ½Π΅Π³ΠΎ Π²ΡΠΏΡΡΠΊΠ° Π²ΡΠΏΡΡΠΊΠ°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠ½ΡΡ
ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠΎΠ² ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΏΡΠΈΡΠΈΠ½Π°Ρ
Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·Π΄Π΅Π»Ρ include
ΠΈ exclude
tsconfig.json
, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠΎΡΡΠΎ Ρ
ΠΎΡΡ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ, Π² ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅ΠΌΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ ( index.ts
) Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ°, ΡΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Angular ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΡΠΊΠ°ΠΆΠ΅ΠΌ, @shared/components
), ΠΎΠ½ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΠΠΠΠΠΠ ΠΠ’ΠΠΠΠ¬ΠΠΠΠ ΠΠΠΠΠΠΠΠΠ’Π. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, import { SharedToastComponent } from '@shared/components';
), ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ (Π½Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅) ΠΎΠ± ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΡΡΠΈ.
ExtrasModule
ΠΈ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, Ρ ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π΅ ΡΠ°ΠΊ Ρ
ΠΎΡΠΎΡΠΎ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΡ ΠΏΡΡΠ΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΆΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΡΡΡ ΠΈΠ²Π°Π½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π°, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΠ ΠΠ£ΠΠΠ« Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠ΅, ΠΎ ΡΠ΅ΠΌ Ρ ΠΏΡΠΎΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π²ΡΡ Π»Π΅ΡΠ½Π΅ΠΉ Π΄Π°Π²Π½ΠΎΡΡΠΈ, β ΡΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π΅Π΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ.
ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ Π² 2019 Π³ΠΎΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Angular ΡΡΠΎ-ΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ Ρ ΡΡΠΎΠΉ ΠΎΡΠ΅Π½Ρ ΡΡΠ°ΡΠΎΠΉ ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. π€
@swimmadude66 ... Π²Ρ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ lib ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Angular ΡΠ΅ΡΠ΅Π· tsconfig.json
... Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: "paths": {"ng-demo": ["./packages/ng-demo/src/index.ts"]}
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΠΏΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ import { DemoModule } from 'ng-demo';
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ/ΡΠ°ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ npm, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠΎΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π’Π°ΠΊ ΡΡΠΎ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π³Π»ΡΡΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° - ΡΠ°ΠΌΠ°Ρ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°ΡΡΠ°Ρ Π²Π΅ΡΡ. ΠΡΠ΅ ΡΠ΅ΡΡΠΈΡΡΡΡ/ΠΏΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²Π΅ΡΠ½ΠΎ? Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΡΠΈΠ±ΠΊΠΈ Π·Π°Π³Π»ΡΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠ΅Ρ . Π― Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎ ΡΡΠ²ΠΎΠ»ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ. Π― ΠΏΡΠΎΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π±ΠΎΡΠΊΠΈ. ΠΠΎ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°ΠΌΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΠ΅ΠΉ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ Β«ΠΠΈΠ·ΠΊΠ°Ρ ΡΠ°ΡΡΠΎΡΠ°Β», Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Β«ΠΡΡΠΎΠΊΠ°Ρ ΡΠ°ΡΡΠΎΡΠ°Β», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ, ΠΊΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ AOT. Angular CLI Π½Π΅ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ serve (ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ AOT), Π½ΠΎ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Ρ build.
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Angular CLI, Π½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΎΠΊΡΡΠ³ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½ΠΎΠ΅.
ΠΠ°ΠΆΠ΅ Ρ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΠΏΠ΅ΡΡ Β«ΡΠ±ΠΎΡΠΊΠ° ngΒ» Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈ Π°Π²ΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π°Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΈΡΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ CI/CD!
ΠΠ΅ΡΠΆΠ΅Π»ΠΈ ΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΈΠΌ ΠΎΠ±ΡΡΡΠ½ΡΡΡ Π»ΡΠ΄ΡΠΌ Π²ΡΡΠ΅ Π² ΠΏΠΈΡΠ΅Π²ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Angular ΠΌΠΎΠ³ΡΡ ΡΠ»ΠΎΠΌΠ°ΡΡ ΡΠ΅Π»ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠΏΡΡΠ΅Π½ΠΈΠ΅ΠΌ? ΠΠ΅Π°. ΠΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Angular ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΡ: ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² Β«ng buildΒ», Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠΉ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΎΠ² ΡΠ΅ΡΡΠΎΠ²: Ρ. Π΅. Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠ° Β«Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ: Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ» ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ (ΡΡΠΎΡ URL)"
ΠΠ°ΠΊ Π²Π°ΡΠΈ ΡΡΠ΅Π΄Π½Π΅ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Angular-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎΠΏΠ°Π»ΠΈ ΡΡΠ΄Π°:
a) ΠΠΠ₯Π, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° DRY-ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Β«Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎΒ» ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ»ΡΠΆΠ± ΠΈ Ρ. Π΄., ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ .spec. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΡΡΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ.
b) ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ .spec ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Β«Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉΒ» ΡΠ°ΠΉΠ» Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Β«ΡΠΈΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΒ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ. ΠΠΎΠΊ-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΊΠ°ΠΊ Π΅ΡΡΡ, Π±Π΅Π· ΡΠ»Π΅Π½ΡΡΠ²Π° Π² ΠΌΠΎΠΊ-ΠΌΠΎΠ΄ΡΠ»Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠΎΠ»ΠΈ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ ΡΡΠΈΠ²ΠΈΠ°Π»Π΅Π½ ... Π½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° Google, ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π²Π°ΡΠΈΡΡ Π²Π΅ΡΠΊΡ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΡΡΠΈ Π½Π΅ Π±ΡΠ»ΠΎ.
Π― ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΡΡΠΎ Π² ΠΊΠΎΠ½Π΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ):
/*
mock components
!! Each mock component added to this file *must* be added to the "MockTestModule", see below !!
*/
@Component({
selector: 'app-mock-component',
template: '<span>mock widget</span>'
})
export class MockComponent {}
/*
This is an unused module to resolve the ng build error:
'ERROR in : Cannot determine the module for class MockComponent
in C:/code/myRepo/src/assets/test/test-resources.ts!
Add MockComponent to the NgModule to fix it.'
Reference: https://github.com/angular/issues/13590
Each mock component added to this file *must* be added to the "MockTestModule"
*/
@NgModule({
declarations: [ MockComponent ],
})
export class MockTestModule {}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ... "MockTestModule" ΡΠΊΡΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°...
... Π― Π½Π°Π΄Π΅ΡΡΡ, Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π·Π°ΠΏΠΈΡΡ package.json Π΄Π»Ρ "ng build", ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "ΠΠΉ, ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ?" ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΡΡ.
ΠΠΎΡ ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. ΠΠΎΡ ΡΡΡΡΠΊΡΡΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
βββ icons.module.ts
βββ index.ts
βββ icon
βΒ Β βββ icon.component.html
βΒ Β βββ icon.component.ts
βΒ Β βββ icon.module.ts
βββ icon-indicator
βββ icon-indicator.component.html
βββ icon-indicator.component.ts
βββ icon-indicator.module.ts
Π icons.module.ts
Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ:
import { IconComponent } from './icon/icon.component';
import { IconIndicatorComponent } from './icon-indicator/icon-indicator.component';
export { IconIndicatorComponent, IconComponent };
@NgModule({
/* this was all fine */
})
export class IconsModule {}
Π£ index.ts
Π±ΡΠ»ΠΎ:
export * from './icons.module';
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π» ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π½Π°ΡΠΊΠΎΠ² ΠΈ Π·Π½Π°ΡΠΊΠΎΠ²-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ΄Π°Π» ΠΎΡΠΈΠ±ΠΊΡ Cannot determine the module for class
. ΠΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ng 5. Π― ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ng 7.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΊΡΠΏΠΎΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ Π²Π½ΠΈΠ·. ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΄Π°Π»ΠΈΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΊΡΠΏΠΎΡΡΠ° Π² icons.module.ts
ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ» ΠΈΡ
Π²:
icon.module.ts:
export { IconComponent };
...
icon-indicator.module.ts:
export { IconIndicatorComponent };
...
ΠΈ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ index.ts
:
export * from './icons.module';
export * from './icon/icon.module';
export * from './icon-indicator/icon-indicator.module';
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΡ-ΡΠΎ.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠ΅Ρ ivy ΡΠ΅ΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ AOT. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠΌΠ°Π½Π΄Π° angular ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π½Π° ivy, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π½Π° angular 6.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠ΅Ρ ivy ΡΠ΅ΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ AOT.
Π― Π»ΡΠ±Π»Ρ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ angular 7.2.0 ΠΈ angular-cli 7.3.0.
ERROR in : Cannot determine the module for class ModalMockComponent in /Users/user/repos/angular-skeleton/src/app/shared/modal/modal.component.mock.ts! Add ModalMockComponent to the NgModule to fix it.
Cannot determine the module for class TranslatePipeMock in /Users/user/repos/angular-skeleton/src/app/shared/pipes/translate.pipe.mock.ts! Add TranslatePipeMock to the NgModule to fix it.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ TranslatePipe
ΠΈ TranslatePipeMock
Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΅Π³ΠΎ Shared Module
. TranslatePipe Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠ°Π½Π°Π» β Π½Π΅Ρ.
translate.pipe.mock.ts
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΡΠ΅ΡΡ.
ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΡ ΡΠ±ΠΎΡΠΊΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ng build --prod
ΠΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ?
Atm Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts",
"**/*.mock.ts"
]
}
ΠΠΎ ΠΊΡΠ°ΡΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΏΠ»ΠΎΡ ΠΎΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½). ΠΠ°ΠΊΠΎΠ² ΠΏΠ»Π°Π½ ΠΏΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ? ΠΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ?
@rrmayer ΡΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΡΠΎΡΡΠΎ Β«ΠΆΠ΄ΠΈΡΠ΅ ΠΏΠ»ΡΡΠ°Β», ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ Β«ΡΠ΅ΠΊΡΡΠΈΠ΅Β» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Ρ Β«ΠΎΡΠΈΠ±ΠΊΠ°Β» Π½Π° Β«ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅Β», ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ... ΠΡΠΎ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ?
@ Terrafire123 ... ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠΎΠΌ ΡΠ°ΠΊΡΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π½Π°Π΄Π΅ΠΆΠ΄Ρ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° :D
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΠΎΡΡ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ ΠΎΡΠΈΠ±ΠΊΡ, Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. Π Π°Π·ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ.
ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
import { UnusedImportComponent } from "./used-somewhere-else-or-not.component";
ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠΊΡΠΏΠΎΡΡΒ» ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @Component , Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΊΠ»Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ΅ΡΡΠ°Ρ ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² CoreMocksModule, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²ΡΠ΅ ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ! ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ-Π·Π°Π³Π»ΡΡΠΊΠ°, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
@Component({
selector: 'app-user-stub-component',
template: ''
})
export class UserStubComponent {}
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠΊΡΠΏΠΎΡΡΒ», Π½ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΠΌ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ/ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. Π‘Π΄Π΅Π»Π°ΠΉ ΡΡΠΎ ΡΠ°ΠΊ:
@Component({
selector: 'app-user-stub-component',
template: ''
})
class UserStubComponent {}
export default UserStubComponent;
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅Π·Π΄Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ Π·Π°Π³Π»ΡΡΠΊΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
import UserStubComponent from 'path'
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ AOT.
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΠΎ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Ρ ΠΊΠΎΡΠΏΡΡΠΎΠΌ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π΄Π»Ρ ΠΏΠ°ΠΏΠΎΠΊ, Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΊΠΎΠ΄Π° VS ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» ΠΏΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅.
@ renilbabu03 JS ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ.
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΠΎ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΎΠ², Π³Π΄Π΅ Ρ ΠΈΠ·Π΄Π΅Π²Π°Π»ΡΡ Π½Π°Π΄ ΠΊΠ°Π½Π°Π»ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°.
Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» export class
Π½Π° default export
:
import { PipeTransform, Pipe } from '@angular/core';
@Pipe({
name: 'translate'
})
class TranslatePipeMock implements PipeTransform { // <-- NOT: "export class TranslatePipeMock implements PipeTransform"
public name = 'translate';
public transform(query: string): any {
return query;
}
}
export default TranslatePipeMock;
ΠΡΠ±ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ?
Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» export default <class>
, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ng serve --aot
, Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ: ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 'null' ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ .
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ.
@redplane ΠΠΎΡΠ΅ΠΌΡ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? Π― ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ ΡΠΊΡΠΏΠΎΡΡ default
.
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌΠΈ:
https://github.com/angular/angular/blob/master/aio/content/examples/testing/src/testing/router-link-directive-stub.ts
ΠΡΠ»ΠΈ Ρ Π½Π΅ import
exported
, ΠΏΠΎΡΠ΅ΠΌΡ Angular Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ»?
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Ρ ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠ°ΠΊ Ρ Π΄Π΅Π»Π°Π» Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° CommonJS. ΠΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· ΠΎΠ±ΠΆΠΈΠ³Π°Π»ΡΡ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ½ΡΠ΅, ΠΈ ΡΠΎ, ΡΡΠΎ Angular Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½Ρ Π²Π·ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π°ΠΊΡΠΈΠ²Ρ ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠΎ ΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π² ΡΡΠ°ΠΏ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ...
Π― Π·Π°ΡΡΡΡΠ» Π² Angular 6, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π°Π΄ ΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΈ Π±ΡΠ»ΠΎ Π±Ρ Π°Π΄ΠΎΠΌ ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π² ΡΠ°Π·Π³Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠΏΡΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ... ΡΠ°ΠΊ ΡΡΠΎ Π² ΡΠ°ΠΌΠΎΠΌ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π±ΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Angular 6+ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ...
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ angular. Π ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π½ΡΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΠΎΠ±ΡΡΠ²ΠΈΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π² ΠΊΠΎΡΠ½Π΅ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ angular Ρ ΠΎΡΠ΅Π», ΡΡΠΎΠ±Ρ ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² Π»ΡΠ±ΠΎΠΌ ΠΈΠ· ngModules ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ public-api.ts , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΡΡΠΌΡΠΌ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π° Π½Π΅ Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ-lib
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: Π΄Π΅ΠΌΠΎ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΊΠ»Π°ΡΡΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ Ρ. Π΄., ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΈΡ Ρ ΠΏΡΡΠΌΡΠΌ ΠΏΡΡΠ΅ΠΌ:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {SearchEnum} ΠΈΠ· 'components-lib';
ΠΈ Π½Π΅ Π΄Π΅Π»Π°ΠΉ
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ { SearchEnum } ΠΈΠ· '../../../projects/components-lib/path-to-your-component';
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΡ-ΡΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΏΠΎΡΡΠ°ΡΠΈΠ» ΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΡΠΎ ΡΠ°ΠΌ.
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ng 9, ΠΊΠΎΡΠΎΡΡΡ Ρ Ρ ΠΎΡΠ΅Π», ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ng 8, ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ΅ΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ
ΡΠ²Π»ΡΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌΠΈ, ΠΈ Π΄Π»Ρ ng 9 Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ @Directive({ selector: 'random' })
Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ng 8.
Π’Π°ΠΊ ΡΡΠΎ ΠΌΠ½Π΅ ΡΡΠΎ ΠΏΠΎΡΡΠΈ ΡΠΎΡΠ»ΠΎ Ρ ΡΡΠΊ... ΠΠ:
Cannot determine the module for class NgxSubFormComponent in /........./node_modules/ngx-sub-form/ngx-sub-form.d.ts! Add NgxSubFormComponent to the NgModule to fix it.`
Π― Π½Π΅ Π²ΡΡΡΠ°Π²Π»ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, Π»ΡΠ΄ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ. ΠΠΎ Ρ Π½Π΅ Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π² ΡΠ²ΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°).
Π’Π°ΠΊ ΡΡΠΎ Ρ Π·Π°ΡΡΡΡΠ», ΠΈ Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ΅Π·Π°Ρ Π²ΡΠΏΡΡΠΊ Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ Π΄ΠΎ ng 9 Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ, ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΌΠΎΠ»ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ.
ngc Π² View Engine ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ ngfactory
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² Β«ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈΒ», ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ² TS, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ tsconfig. ΠΠΎΡ ΠΊΠ°ΠΊ TypeScript
ΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ - ΠΎΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ tsconfig. ngc ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π² ΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ @Component
ΠΈ ngc ΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ (ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½), ngc ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π΅Π³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ΅Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ngc Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ tsconfig. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ tsconfig Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π° Π·Π°ΡΠ΅ΠΌ tsconfig.app.json
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ngc.
ΠΡΠΎΠ΅ΠΊΡΡ (ΠΊΠ°ΠΆΠ΄ΡΠΉ tsconfig ΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌΒ») Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π²ΠΌΠ΅ΡΡΠ΅.
Π Ivy Π²ΡΠ΅ Π΅ΡΠ΅ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΡΠ»ΠΈΡΠΈΡΠΌΠΈ:
@Component
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½.jit: true
Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ.@alxhub Π― ΡΠ°Π΄ ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠ°!
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ngc ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ tsc, ΠΈ ΡΡΠΎ tsc ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ΅, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π° 100% ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ³Π»ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΠ΅ Π±Π°Π½ΠΊΡ Π² ΡΡΠΎΡΠΎΠ½Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ·-Π·Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΡΠ΅ΠΊ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π’ΠΠΠΠ Π½Π΅ ΡΠ΄Π°Π»ΠΈΠ² Π΅Π³ΠΎ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅ΡΠΊΡΠΏΠΎΡΡΠ° Π½Π° ΡΡΠΎΠΌ ΠΏΡΡΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΈΠ·ΡΠ²Ρ ΠΏΡΠΎΡΡΠΎ Β«ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΒ» ΡΠ°ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ Π½Π΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΠ΅.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΡΠ°Π²ΡΠ΅Π³ΠΎΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Ρ ivy (ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π±Π΅Π· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ), Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ? Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ (ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ), Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ Π±Π΅ΡΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ, Π½ΠΎ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Warning: ExampleUnusedComponent does not belong to an NgModule, and will be excluded from the output
ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΡΡΡΠ»Π°Π΅ΡΡΡ) Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ngModule.
Π ΡΠ΅Π»ΠΎΠΌ, Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄ Π²ΠΈΠ΄Π΅ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ Ρ Π½Π΅ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ ivy!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@DzmitryShylovich ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΠ‘ΠΠΠΠ¬ΠΠ£ΠΠ’Π, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ .ts Π±Π΅Π· ΡΡΡΠ»ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.