tsfmtを使用する。gulp-tsfmtはtsfmtモジュールを使わず独自にフォーマットロジックを組んでいるっぽい。
なのでgulp-shellを使ってtsfmtを実行することにした。
最初は$(npm bin)/tsfmt -r ./**/*.ts
をgulpから実行すればいいのかと思ったが、フォーマット対象のファイルがnot foundになる。。
コンソールから実行するとフォーマットできる。
しょうがないのでgulpの機能でファイル名を渡して貰い1ファイルずつフォーマットをかけるようにした。
指定ファイルをglobから除外するコードは以下。
tsDir + '/**/*.ts', "!" + tsDir + '/**/libs/**']
パスの先頭に!をつければよい。
gulp.task('format', function () { // libs下のファイルはフォーマット対象から除く return gulp.src([tsDir + '/**/*.ts', "!" + tsDir + '/**/libs/**'], {base: tsDir}).pipe(shell([ '$(npm bin)/tsfmt -r <%= file.path %>' ])); });
因みにnpm installでプロジェクトインストールしたGlupのタスクは「$(npm bin)/gulp build」のようにして実行したり package.jsonのscriptsに以下のように書いておくと
"scripts": { "build": "gulp build" }
「npm run buld」と実行出来る。これは便利だ。
参考: