Angular: ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Angular2 AOT - «НСвозмоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для класса (... ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ)Β»

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 20 Π΄Π΅ΠΊ. 2016  Β·  183ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: angular/angular

[ 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.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ angular, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ngModule с ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ AppComponent.
  2. ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄ΠΈΡ‚Π΅ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилировано AOT (Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ довольно Π»Π΅Π³ΠΊΠΎ с привСтствиСм, ΠΌΠΈΡ€)
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π½ΠΎ Π½Π΅ ΡΡΡ‹Π»Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° Π½Π΅Π³ΠΎ Π½ΠΈΠ³Π΄Π΅ Π² своСм ΠΊΠΎΠ΄Π΅.
  4. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ AOT. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Cannot determine the module for class

Какова мотивация / Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования для измСнСния повСдСния?
Π£ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для нас самих, ΠΈ наши ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ вСрсии этого прилоТСния ΠΊΠ°ΠΊ свои собствСнныС. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всСх ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ±Ρ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΎΠ±Ρ‰ΠΈΡ… ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Для нашСго Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Для ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ AOT, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ npm Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ заявлСнного модуля.

РасскаТитС, поТалуйста, ΠΎ вашСй срСдС:
ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° всСх устройствах, Π½ΠΎ тСкущая настройка тСстирования:
Windows 10
Код Π’Π‘
Cmder (Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» bash)

  • Угловая вСрсия:
    v2.1.0 (хотя ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ тСстировали Π² 2.3.1

  • Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€: всС - это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° компилятора, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

  • Π―Π·Ρ‹ΠΊ: Машинопись

  • Π£Π·Π΅Π» (для ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ AoT): ΡƒΠ·Π΅Π» v6.3.0
P5 compiler NgModule ve low error messages triage #1 confusing

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

@DzmitryShylovich ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π˜Π‘ΠŸΠžΠ›Π¬Π—Π£Π•Π’Π•, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ модуля. Но с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния компилятора эти Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния. Π­Ρ‚ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ .ts Π±Π΅Π· ссылок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ВсС 183 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

НС удаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для класса

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ модуля. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ.
Π― Π±Ρ‹ сказал, Ρ‡Ρ‚ΠΎ это запрос Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

@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 Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ запуск этой ошибки... ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹/ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла...

image

Удаляя ΠΏΠ°ΠΏΠΊΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся Π² строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ, бСзусловно, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π­Ρ‚Π° ошибка Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Π»Π΅ΠΏΠ°. Π£ мСня Π±Ρ‹Π» ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

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'; ), компилятор всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экспортируСмого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ (Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅) ΠΎΠ± ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ….

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ.

  1. ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΡ‡ΠΊΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π­Ρ‚ΠΎ быстро становится бСспорядочным, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Π½
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ 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 всС Π΅Ρ‰Π΅ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, с нСсколькими нСбольшими отличиями:

  • По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ivy попытаСтся ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ _any_ @Component нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, экспортируСтся Π»ΠΈ ΠΎΠ½.
  • Π’ Ivy большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ошибкой ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±Π΅Π· модуля. Однако Π²Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ошибки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ° шаблона, Ссли этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ попытаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π² своСм шаблонС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π΅Π· модуля этому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½ΠΎ.
  • МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору Ivy ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎ выполнСния, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Ρ„Π»Π°Π³ 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!

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ