2017-10-29 17 views
1

프로젝트 (예 : clientserver)은 여러 가지 공통 기능 (common 폴더에 있음)을 공유합니다. client.ts 유틸리티 이런 식으로 가져여러 원본 폴더의 파일을 단일 플랫 outDir로 출력하도록 tsconfig.json을 구성하는 방법은 무엇입니까?

+ client 
| - tsconfig.json 
| + src 
|  - client.ts 
+ common 
    + src 
     - util.ts 

: 간결함을 위해

import { Util } from '../../common/src/util'; 

내가 client와 같은 수준 인 server 폴더를 생략하고이 폴더 구조를 고려하십시오. out 폴더에 transpilation 후, 나는이 간단한 플랫 폴더 구조를 좀하고 싶습니다 :

+ client 
| + out 
|  - client.js 
|  - util.js 

을 ... 이상적으로 단순히 실제 폴더의 일반적인 유틸리티 무관 가져올 수 :

import { Util } from './util'; 

이를 달성하기 위해 tsconfig.json을 어떻게 구성합니까?

나는 rootDirs, baseUrlpaths의 다른 조합을 시도,하지만, 난 여전히 out에서 (모두 그들의 src 하위 폴더 포함) clientcommon 하위 폴더를 얻고있다.

답변

0

현재로서는 할 수 없습니다.

나는 너와 비슷한 상황이지만, 둘러 보았지만 TypeScipt 구성으로이 동작을 변경할 수있는 방법이없는 것 같습니다.

가장 좋은 방법은 모든 빌드 후에 js 파일을 이동하고 생성 된 폴더를 삭제하는 등의 다른 작업 (Grunt 작업, 셸 스크립트 등)을 사용하는 것입니다.

0

두 가지 소스에 공용 라이브러리에 대한 링크를 넣어 현재 프로젝트 (동일한 설정이 있음)에서이 문제를 해결했습니다.

common/ 
    src/ 
    lib/ 
client/ 
    src/ 
    lib/ -> $PROJECT_PATH/common/src/lib/ 
server/ 
    src/ 
    lib/ -> $PROJECT_PATH/common/src/lib/ 

도구가 해당 디렉토리를 로컬 디렉토리로 취급하므로 컴파일 및 번들링이 투명 해집니다.