Angular-CLI 1.3.0 이하버전에서 production build 시 에러가 나는 경우


최근 Angular-CLI 1.3.0 이하버전에서 build --aot -prod 나 build --prod 시 아래와 같은 에러가 있었습니다.

ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'C:\test\tour-of-heroes\src'
 @ ./src/main.ts 4:0-74
 @ multi ./src/main.ts

Angular가 버전업되면서 aot와 충돌이 일어난 것인데요, aot를 사용하지 않거나 Angular-CLI를 최신버전으로 업데이트하면 해결됩니다.

Angular-CLI를 최신버전으로 업데이트 하기 (권장)

1. global package를 업데이트합니다.

$ npm uninstall -g @angular/cli
$ npm cache clean
$ npm install -g @angular/[email protected]

2. local package를 업데이트합니다.

$ rm -rf node_modules dist
$ npm install --save-dev @angular/[email protected]
$ npm install

위의 --save-dev 부분은 dependency 타입에 따라 --save가 될 수도 있습니다.

aot를 사용하지 않고 prod 빌드하기

아래 명령어를 입력하면 aot없이 prod environment로 빌드할 수 있습니다.

$ ng build --env=prod

그 외 특별한 사정으로 반드시 현재버전을 유지하면서 aot를 사용해야 하는 경우

enhanced-resolve 3.3.0을 설치하면 이 문제를 해결할 수 있다고 합니다. 우선 "enhanced-resolve": "3.3.0"을 package.json의 dependency에 추가합니다.  그 다음 아래 명령어를 입력합니다.

$ npm clean cache
$ Delete node_modules
$ run npm install


잘 되던게 갑자기 안되서 저도 깜짝놀랐습니다. 구글링해서 찾은 정보를 공유합니다.

댓글

댓글쓰기

이 글에 댓글을 다시려면 SNS 계정으로 로그인하세요. 자세히 알아보기

UP