質問: require('run-sequence'); gulp.task('pj_init_2', function () { return runSequence( 'symlink_config_create', 'symlink' ); }); ``` しかし、これも結果は `pj_init_1` の時と同様に、 `symlink_config_create` までしか処理されません。 ### 04.02.03 試したこと その3 タスクの依存関係を考慮 他にも `symlink` が `symlink_config_create` に依存しているのではないかという理由で、第2引数に'symlink_config_create'を入れてみました。 **./gulpfile.js** ``` gulp.task('pj_init_3', ['symlink_config_create'], function() { gulp.run('symlink'); }); ``` しかしながら、こちらもまた `pj_init_1` や `pj_init_2` と同様に、 `symlink_config_create` までしか処理されませんでした。 正常に処理させるためにはどうしたら良いでしょうか? また、見落としやご指摘、アドバイスなどがあればご教示頂きたいです。 よろしくお願いいたしますm(_ _)m
回答: 自己解決 半ば強引ではありますが、下記のコードで希望していた動作が可能になりました。 ※ 前述の `pj_init` 及び 'symlink_config_create' のタスクについては割愛しております。 **./gulpfile.js** ``` var child_process = require('child_process').exec; gulp.task('pj_init', ['symlink_config_create'], function () { var cmd = "gulp symlink"; child_process(cmd); }); ``` Node.js の child_process を使用しています。 > > 参考 : これ便利!gulpfile.js でLinuxコマンドを記述して実行できるプラグ... > > > 上記のコードでは `symlink_config_create` を実行する際に、用意してある `symlink` というタスクを Linux コマンドで実行させるものになります。 本来やりたかったタスクのグルーピングという手段とは若干ニュアンスが異なりますので、もしこれ以外に良い方法をご存知の方は以降もぜひご教示いただければと思います。 なお、本投稿課題 04.02.01 及び 04.02.03 に記載の `gulp.run` は現在非推奨となっている様です。 処理はされますが、下記の様な警告が吐き出されます。 > > gulp.run() has been deprecated. Use task dependencies or gulp.watch task triggering instead. > > > そのため、 `gulp.run` ではなく `gulp.task` にタスク同士の依存関係を定義する方法があるので、そちらに書き換える必要がある様です。 > > 参考 : gulpその0002 gulp.runが3.5からdeprecated(非推奨)... > > > `gulp.run` の代替手段として、 `gulp.task` の第二引数に依存関係にあるタスクを配列で記述します。 つまり、 04.02.01 及び 04.02.03 は同じ処理となります。 04.02.03 については知識が追いついておらず、新旧手段の入り交じったタスクを作成してしまっておりました。 もし、単純に並列処理をグルーピングしたタスクを作成するのであれば、現時点で推奨されている記述方法では下記のような記述になるでしょう。 ``` gulp.task('pj_init_1', ['symlink_config_create', 'symlink']); ```