2014-10-24 3 views
0

grs-typescript를 사용하여 ts 파일 세트에서 단일 js 파일을 생성합니다. ts 파일 중 하나에 import 문을 추가 할 때까지이 작동합니다.typescript 가져 오기를 추가하면 단일 js 파일로 컴파일되지 않습니다.

예 툴툴 거리는 소리 - 타이프 라이터의 설정

typescript: { 
     server: { 
      src: ["./ts/file1.ts", "./ts/file2.ts"], 
      dest: "./js/out.js", 
      options: { 
       module: 'amd', //or commonjs 
       target: 'es5', //or es3 
       basePath: '', 
       sourcemap: false, 
       declaration: false, 
       ignoreError: false 
      } 
     } 
    } 

나는 file2.ts 예를 들어,의 상단에 import 문을 추가하는 경우

import PG = require("pg"); 

은 그 때 나는 File1.ts 코드가 File2.ts에 정의 된 유형을 찾을 수 없다는 에러가 발생하고 나는 예상치 못한 File2.js는 이명 령 파일 매개 변수를 무시 /의 TS 디렉토리에 생성 얻을. 가져 오기를 통해 File2.ts를 완전히 별도로 컴파일하는 것으로 보입니다.

임포트 할 때 예상 되는가 아니면 컴파일 오류없이 예상되는 단일 js 파일을 만들 수 있습니까?

답변

2

AMD 모듈을 가져 오거나 내부 모듈의 외부에서 내보내 자마자 파일은 AMD 모듈로 컴파일됩니다. AMD와 단일 파일 컴파일은 본질적으로 다른 작업 모드이며 혼합되기를 싫어합니다. 내부 대 외부 모듈을 읽으려면 this TypeScript wiki page을 확인하십시오.

기술적으로 여전히 표준 JavaScript 메서드를 사용하여 AMD 모듈을 가져올 수 있지만 어색합니다. 예를 들어, DefinitelyTyped에서 require.d.ts 파일을 사용 :

/// <reference path="require.d.ts"/> 

require(["somemodule"], (SomeModule: namespace.SomeModule) => { 
    // async code called after the module is retrieved 
}); 

import 키워드 타이프없이하면 필요에 대해 아무것도하지 않고 자신에 당신을 떠난다.

대체로 AMD 전체 버전을 권장합니다. 라이브러리가 AMD라면 작업하기가 더 쉽습니다. 출시 할 때는 여전히 compile down to a single file 일 수 있습니다.

관련 문제