2016-11-01 2 views
0

주어진 위치에서 .ts 파일을 변환하고 다른 주어진 위치에서 .js 파일을 출력하는 덤프 작업이 있습니다.gulp-typescript는 특정 위치의 파일뿐만 아니라 모든 .ts 파일을 컴파일합니다.

내가 겪고있는 문제는 대상을 보내기 전에 주어진 위치에서 .ts를 가져 와서 .js로 변환하는 것이 아니라 부모 및 형제 폴더의 모든 항목에 대해서도 동일한 작업을 수행한다는 것입니다.

{ 
    "compilerOptions": { 
    "target": "es6", 
    "module": "commonjs" 
    }, 
    "exclude": [ 
     "node_modules" 
    ] 
} 
: 여기
var gulp = require("gulp"), 
    ts = require("gulp-typescript"); 

var paths = { 
    botScripts: 'source/bot/*.ts', 
    releaseBot: 'dist/bot' 
}; 

// Create typescript project 
var tsBotProject = ts.createProject('tsconfig.json'); 

// Create the tasks 
gulp.task('botscripts', function() { 

    var tsResult = tsBotProject.src(paths.botScripts) 
    .pipe(tsBotProject()); 

    return tsResult.js.pipe(gulp.dest(paths.releaseBot)); 
}); 

내 tsconfig.json입니다 :

여기
root 
|__dist 
| 
|__source 
| |__bot 
| |__logon 

내 gulpfile.js의 단순화 된 버전의 다음과 같이

내 폴더 구조는

내가 말했듯이, 그것은 .js 그냥 괜찮아요,하지만 내가 끝나는 부분은 모든 typscript 파일의 위치에 상관없이 .js로 transpiled 및 dist 아래에 동일한 폴더 구조로 복사 :

root 
|__dist 
| |__bot 
| | |__*.js 
| |__logon 
|  |__*.js 
| 
|__source 
| |__bot 
| |__logon 

내가 뭘 잘못하고 있니?

답변

2

tsBotProject.src()은 아무런 인수가 없습니다. 당신은 그것을 paths.botScripts으로 전달하려고 시도하지만 그 인수는 단순히 무시됩니다. 대신 tsBotProject.src()tsconfig.json에서 지정한 파일을 정확하게 내 보냅니다. 귀하의 경우에는 node_modules을 제외한 모든 것입니다.

옵션 1 :

두 가지 옵션이 있습니다 당신이처럼 gulpfile.jstsBotProject.src()를 사용할 수 있습니다 또한에 include 속성을 추가 할 필요가

이 위해서는
var tsResult = tsBotProject.src() 
    .pipe(tsBotProject()); 

당신을 해결하려면 귀하의 tsconfig.json :

{ 
    "compilerOptions": { 
    "target": "es6", 
    "module": "commonjs" 
    }, 
    "include": [ 
     "source/bot/*.ts" 
    ], 
    "exclude": [ 
     "node_modules" 
    ] 
} 

옵션 2 : 사용 gulp.src() 대신 tsBotProject.src() 당신의 gulpfile.js의 :

var tsResult = gulp.src(paths.botScripts) 
    .pipe(tsBotProject()); 
+0

안녕 스벤 - 설명 주셔서 감사합니다. 이것을 염두에두고 gulpfile.js를 다시 보았을 때, 그 행동은 의미가 있습니다. 필자가 현재 사용하고있는 방법을 사용하면, 나는 transpile 할 파일의 각 묶음에 대해 새로운 tsproject.json 파일을 만들어야한다. 그럼 내가 한 것은 옵션 2로 찍은 것입니다. 물론 완벽하게 잘 작동합니다. 물론 tsBotProject (tsconfig.json 설정) 내의 설정을 존중한다고 가정하면 다시 한번 감사드립니다! –

관련 문제