2017-11-05 1 views
3

"ng build --prod"를 사용하여 각도 응용 프로그램을 작성할 때 다음 오류가 발생합니다. Angular 4로 빌드하고 Angular 5에서 오류가 발생하는 경우 작동합니다. Angular 5 "Ng serve"가 완벽하게 작동합니다.부품 각도 5에 대한 모듈을 결정할 수 없습니다.

ERROR in Error: Cannot determine the module for class TimeAgoPipe in mypath/node_modules/time-ago-pipe/time-ago-pipe.ts! Add TimeAgoPipe to the NgModule to fix it.

https://www.npmjs.com/package/time-ago-pipe

모든 솔루션에 대한 오류 얻기?

+0

'declarations : [AppComponent, ... etc ..., TimeAgoPipe], ' –

+0

'선언 배열에 추가 할 수 있도록 이미 있습니다 ... 그렇지 않으면 "ng serve"로 각도 4를 빌드합니다. 오류를 줄 것입니다 ... 오류 5 각도에만 – user2609021

+0

당신은 그것을 재현 할 수있는 최소한의 예제를 제공 할 수 있습니까? – yurzui

답변

1

각도 5 및 특히 angular cli 1.5는 컴파일 시간을 미리 설정하고 프로젝트 폴더에서 선언되지 않은 일부 구성 요소가있는 경우 모든 구성 요소/파이프 등의 모듈을 알아야합니다. 모든 모듈은 오류를 발생시킵니다.

@NgModule({ 
    declarations: [TimeAgoPipe, ...] 
}) 
export class AppModule {}// for example can be any other used module 

또는 그렇게하지 않으면 결과 코드가 느린

ng build --prod --aot=false 

세 번째 방법을 작동합니다 AOT 컴파일없이 구축 실행 해보십시오 : 당신은 어떤 모듈에 TimeAgoPipe를 선언 할 수 있습니다

그 파이프를 제외 된 파일에 추가 할 수 있습니다. tsconfig.json

{ 
    ... 
    "exclude": [ "path/to/unused/component.ts", ... ] 
} 
1

나는 정확히 같은 문제를 가지고이 특정 파이프가 성공적으로 AOT 빌드에 의해 포착되지 않는 이유는 확실하지 않지만 해결 방법을 제공 할 수 있습니다 :

해결

복사 시간 전에 파이프 .ts node_modules/time-ago-pipe에서이 파일을 자신의 프로젝트에 복사하십시오.

는 예컨대 당신의 수입에 정상적으로 모듈에 선언을 추가하고이 문제를 가져옵니다이 다음 AOT 빌드에서 성공적으로 컴파일하고 여전히 파이프를 사용할 수 있습니다

import { TimeAgoPipe } from './_pipes/time-ago-pipe'; 

.

관련 문제