gulpでTypeScriptファイルの変更をgulp.watch()で監視して、ファイルに変更があったら"build"というタスクを実行させたいのですが、いまいち上手く動作してくれません。
最初にTypeScriptのファイルに変更があった時は正常に"build"タスクが実行されるのですが、それ以降はTypeScriptのファイルに変更があっても、"build"タスクが実行してくれません。
gulpはまだ不慣れで直接処理、並列処理の書き方やwatchの使い方の理解があやふやなのですが、
このコードのどこがおかしくて、どういう書き方が適切なのでしょうか?
ちなみに、"build"タスクでは、gulpのrun-sequenceモジュールを使って、
直接処理と並列処理を行っています(行っているつもりです)
ご教授頂ければ幸いです。よろしくお願い致します。
JavaScript
1var gulp = require("gulp"); 2var typescript = require("gulp-typescript"); 3var plumber = require('gulp-plumber'); 4var runSequence = require("run-sequence"); 5var browserify = require("browserify"); 6var source = require("vinyl-source-stream"); 7 8gulp.task("compileTypeScript", function() { 9 10 return gulp.src("./TypeScript/*.ts") 11 .pipe(plumber()) 12 .pipe(typescript()) 13 .on("error", function(error) { 14 console.log(error.message) 15 }) 16 .pipe(gulp.dest("./JavaScript")); 17 18 19}); 20 21 22gulp.task("browserify", function() { 23 24 return browserify({entries: ["./JavaScript/Main.js"]}) 25 .bundle() 26 .pipe(source("Main.bundle.js")) //出力先ファイル名 27 .pipe(gulp.dest("./build")); //出力先ディレクトリ 28 29}); 30 31 32gulp.task("log", function() { 33 return console.log("successfully done!!"); 34}); 35 36 37 38gulp.task("watch", function() { 39 gulp.watch("./Typescript/*.ts", ["build"]); 40 41}); 42 43 44gulp.task("build", function(callback) { 45 46 runSequence( 47 ["compileTypeScript"], //配列に入っているタスクは並列処理 48 "browserify", //直接処理 49 "log" //直接処理 50 ); 51 52}); 53 54 55gulp.task("default", ["watch"]);
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/07/10 02:54