0

각도 - cli와 --prod 및 --aot 인수를 사용하여 Angular 2 프로젝트를 빌드하려고합니다. 다음 오류로 인해 빌드가 실패합니다. Property 'required' does not exist on type '{ [key: string]: any; }'. 내 HTML에서 일부 입력 (필수, 패턴)에 HTML5 유효성 검사기를 사용하고 있습니다. JiT 컴파일을 사용하면 예상대로 작동합니다. AoT 컴파일 중에 만 오류가 발생합니다. 이전에 본 사람이 있습니까? ReactiveForms 메서드를 사용하고 Angular Validators를 사용하여 내 양식을 모두 정의하지 않아도된다는 생각을하지 않았습니다.Angular 2 CLI - AoT Compilation - HTML5 폼 검사기를 사용할 수 없습니다.

답변

2

다음은 AoT 컴파일을 실패하게 만드는 몇 가지 사항입니다.

  • angular2-template-loader 플러그인은 빌드시에 필요로 변경됩니다, 템플릿 또는 스타일, 사용 styleUrls 및 templateUrls에 대한 문을 필요로 사용하지 마십시오.
  • 기본 내보내기를 사용하지 마십시오.
  • 함수를 수출, control.hasError(‘someError’)
  • 이 제공, 경로 나 선언에서 기능을 사용하지 마십시오 사용 form.get(‘controlName’)
  • control.errors?.someError를 사용하지 마십시오 사용 form.controls.controlName를 사용하고 그 함수 이름
  • 를 참조하면 안됩니다 @Inputs, @Outputs, View 또는 Content 하위 (ren), 호스트 바인딩 및 템플릿에서 사용하는 모든 필드 또는 앵귤러에 대한 주석은 공개되어야합니다.
+0

그게 전부입니다! AoT 컴파일러가 플래그를 지정한 모든 위치에서 control.errors? .error를 사용하고있었습니다. control.hasError ('error')로 변경하면 컴파일러 오류가 제거됩니다. 고맙습니다! 부수적으로, 컴파일 함정의 목록은 매우 유용했으며, AoT 컴파일을 수행하는 사람은이 정보를 통해 많은 도움이 될 것이라고 생각합니다. 이 목록은 어딘가에서 사용할 수 있습니까? –

+0

나는 나의 연구에서이 목록을 만들었는데 나는 다른 곳에서 얻은 포인트를 곧 얻을 수있다. –