2016-05-05 5 views
0

gulpとgulp-typescript npmモジュールで私のタイスクリプトファイルをコンパイルしようとしています。私はすでにこれまでに多くのアプリでこれを行ってきましたが、私は自分自身で解決できないようなことはしませんでした。 'compile'タスクは開始しますが、終了しません。ここに私のgulpfile.jsです:gulpでtypescriptコンパイルを終了しません

var gulp = require('gulp'); 
var del = require('del'); 
var typescript = require('gulp-typescript'); 
var tscConfig = require('./tsconfig.json'); 
var exec = require('child_process').exec; 
gulp.task('clean', function(){ 
    return del('./public/dist/**/*'); 
}); 
gulp.task('compile', ['clean'], function(){ 
    return gulp 
     .src('./public/ts/**/*.ts') 
     .pipe(typescript(tscConfig.compilerOptions)) 
     .pipe(gulp.dest('./public/dist')) 
}); 
gulp.task('connect', function (cb) { 
    exec('node server', function (err, stdout, stderr) { 
     console.log(stdout); 
    }); 
}) 
gulp.task('watch', function(){ 
    gulp.watch(['./public/ts/**/*.ts'], ['compile', 'connect']) 
     .on('change', function(event){ 
      console.log('\x1b[33m', 'The file ' + event.path + 'has been modified.'); 
    }); 
}); 
gulp.task('default', ['watch', 'compile', 'connect']); 

そして、ここでは私のtsConfig.jsonファイルは次のとおりです。

\myapp 
    \--public 
     \--ts 
     \--dist 
     index.html 
    gulpfile.js 
    tsconfig.json 

すべてが、私の 'コンパイル' タスク思わ:

{ 
    "compilerOptions": { 
     "outDir": "dist", 
     "target": "es2015", 
     "module": "system", 
     "moduleResolution": "node", 
     "sourceMap": true, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "removeComments": false, 
     "noImplicitAny": false 
    }, 
     "exclude": [ 
      "node_modules", 
      "typings/main", 
      "typings/main.d.ts" 
     ] 
} 

私のアーキテクチャは次のようになりますうまく動作するように。なぜ、何かが間違っているのであれば、どんな考えですか?私はあなたが持っているだろう、他の作業のプロジェクトとの違いを探して、時間を探してきたが、何も見つかりませんでした...

答えて

0

オクラホマのようになりますmyapppublicフォルダ内に存在しているようだ、私はそれを得ました。この問題は私のtsconfig.jsonファイルから発生しました。行"outDir": "dist".pipe(gulp.dest('myapp/dist'))gulpfile.jsに上書きしているようです。私はそのコード行を必要としなかったので、愚かな間違いですが、古代のプロジェクトからコピーして貼り付けましたが、compilerOptionsは変わるべきだとは思いませんでした。とにかく、問題は解決しました。あなたの答えに感謝します。

0

を「コンパイル」タスクが開始しますが、

を決して終わりませんあなたのコードを共有する。あなたは、公式レポでこのような何かを、問題を作成することがあります:https://github.com/Microsoft/TypeScript/issues/8401

あなたはあなたのコードを共有したくない場合は、次の

0
gulp.task('compile', ['clean'], function(){ 
    return gulp 
     .src('myapp/ts/**/*.ts') 
     .pipe(typescript(tscConfig.compilerOptions)) 
     .pipe(gulp.dest('myapp/dist')) 
}); 

まず第一に、あなたは.SRCでパスを確認してくださいすることができますか?それはmyapp/ts/**/*.tsを渡しているが、あなたのアーキテクチャでは、tsフォルダはそれがmyapp/public/ts/**/*.ts

+0

ええ、私は少し私のアーキテクチャの構文を台無しにしたようです。実際、私はポストの目的のためにフォルダ(かなり複雑な名前を持っていた)の名前を変更しました。私は新しい名前でコードを書き直すことができませんでした。私は '.src( 'myapp/ts/**/*。 gulpfile.jsとtsconfig.jsonファイルはすでに 'myapp'フォルダにありますので、' .src( 'public/ts/**/*。ts') 'にする必要があります。メインの投稿を正しいパスで編集します(また、gulpfile et tsconfigがmyappフォルダ内にあることを明確にするためにアーキテクチャも同様です)。しかし、それは、現実の道であっても、コンパイルされません。 – Youri

関連する問題