2017-10-25 8 views
0

저는 여러 Angular 및 NodeJS 프로젝트가 포함 된 프로젝트 (모든 Typescript)를 작성하고 있습니다. 그 부분은 꽤 잘 진행되고 있지만, 내 모든 Typescript 프로젝트가 프로젝트 모듈, Typescript 인터페이스, NgModules 등을 공유 할 수있는 소스 폴더 아래에 라이브러리 폴더를 가질 수 있다면 매우 좋을 것이라고 생각했습니다. 그러나 컴파일 할 때 생산을위한 소스인데, 실제 모델에 대한 ModuleFactory 참조가 'lib'NgModules에 대해 올바르게 변환되지 않습니다.각도 AoT가 잘못된 외부 디렉토리 참조를 생성합니다.

내가 데모를 만든 예를 들어 내 GitHub의에 업로드 한 :

npm run build-aot // Builds and fails for production 
npm run build-jit // Builds and runs for dev i.e. "ng serve --dev" 
npm run compile-aot // To compile and keep AoT folder in src, just ngc 

에서 NPM 스크립트로 컴파일 스크립트를 https://github.com/ItsBaneDude/broken-external-links

내가 포함 한 나는 봉사하는 JIT를 넣어 것을 잊었다 스크립트를 사용하면 자동으로 브라우저에서 실행되는 것을 볼 수 있지만,이를 달성하기 위해서는 단지 ng serve --dev을 수행 할 수 있습니다.

그래서, 무슨 일 : 당신이 생산, npm run build-aot에 대한 빌드하려고, 그것은

ERROR in C:/Users/Bane/Documents/node_projects/broken-external-libs/src/project-ng/aot/lib/modules/test/test.module.ngfactory.ts (10,21): Cannot find module './test.module'. 

부랑자는 말한다. 이유가 궁금합니다.

은 ... AOT는 ... 그것은 "작품"npm run compile-aot컴파일 실행 좋아

때문에 AOT의 엿 먹어은 src/project-ng/aot에서 생성됩니다. .../aot/app/app.module.ngfactory.ts에 들어가면, 10 행에 내 앱 모듈에 대한수입 문을 볼 수 있습니다.

import * as i1 from '../../app/app.module';

이 좋아, 멋진, 그것은 ../../app/app.module 다시 제대로 모든 방법을 다음 성공적으로 해결합니다. 내가 다시 AOT 폴더로 이동하는 경우

그러나, 내 lib 폴더 안에 제외 ...aot/lib/modules/test/test.module.ngfactory.ts에, 나는 수입 내 TestModule에 노력하고, 다시, 라인 (10)에 그것을 볼 수 있지만, ./test.module

import * as i1 from './test.module';

에서

그러나 우리가 합리적이고 자기와 컴퓨터를 인식하는 인간으로 알고 있듯이, 그것은 ../../../../../lib/modules/test/test.module과 같아야합니다.

Y 상점

이 중 일부는 나에게 흐릿한 것 같으면 내가 빨아 때문에, 그것은 될 수 있도록 내가 최근에, 각도 개발을 시작했습니다 완전히 공정하게합니다. 그러나 나는 더 빨기를 기대하고있다! 누구든지 내게 손을 빌려 주면, 나는 빌린 전문 기술에 대해 매우 감사 할 것입니다.

답변

0

내가 발견하고 함께가는 결국 대답했다 :

이 는 컴파일러 CLI <은 1.5.0-rc.5 (나는 그것이 릴리스 후보 5, 나는 변경 로그를 보이지 않았다 생각이) 코너 않습니다

이 동작을 지원하지 않습니다. 이 프로젝트를 시작하기 몇 개월 전부터 코드를 개발하기 위해 Angular 5로 개발하고 예상 한 결과를 얻고 있습니다.