前提・実現したいこと
pugをコンパイルして、出力先の一階層目に全ての出力したファイルをコピーしたい。
普通にpugをコンパイルすると、ディレクトリ構造を保ったまま出力されてしまいます。
コンパイル先の全てのファイルを一箇所にまとめたく、以下のタスクを書いたのですが思うように動きません。
最終的にはコピーした後に、コピーしたファイル以外は削除するつもりですが、コピーの部分で躓いてしまいました。。。
「コンパイル」と「コピー」を順番に行うために、run-sequence
を使い順番にタスクを実行しています。
ですが、watch中、コンパイルは行われるのですが、コピーが行われません。しかし、コンソール上にはコピーのタスクが実行されたとなっています。
コピーのタスクを単体で実行すると何故かコピーはされます。。。
なぜwatch中はコピーされないのでしょうか。
また、コピーのsrcでファイル名を指定しているのですが、これを**
に変えるとコピーされませんでした。
この原因も分かる方いましたら併せてご教授お願い致します。
該当のソースコード
var gulp = require('gulp'), pug = require('gulp-pug'), plumber = require('gulp-plumber'), notify = require('gulp-notify'), rename = require('gulp-rename'), runSequence = require('run-sequence'); var paths = { src: '_src/', dest: 'dest/' } gulp.task('pug', function () { gulp.src([ paths.src + '**/*.pug', '!' + paths.src + '**/_*.pug' ]) .pipe(plumber({ errorHandler: notify.onError('<%= error.message %>') })) .pipe(pug({ pretty: true, doctype: 'html' })) .pipe(rename({ extname: '.php' })) .pipe(gulp.dest(paths.dest)); }); gulp.task('copy', function() { gulp.src(paths.dest + 'module/*.php') .pipe(gulp.dest(paths.dest)); }); gulp.task('run-sequence', function(callback) { return runSequence( 'pug', 'copy', callback ); }); gulp.task('watch', function () { gulp.watch(paths.src + '**/*.pug', ['run-sequence']) });
補足情報(FW/ツールのバージョンなど)
"gulp": "^3.9.1",
"gulp-notify": "^3.2.0",
"gulp-plumber": "^1.1.0",
"gulp-pug": "^3.3.0",
"gulp-rename": "^1.2.2",
"run-sequence": "^2.2.1"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/27 07:31