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