しかし、私はgulp watchタスクを実行するとビルドが中断されるという問題に遭遇しました。これは、.scss
ファイルを編集し、gulpが変更を検出した場合にのみ発生します。Gulp watchはプロダクションファイルを破損します
たとえば、ウェブサイトの特定のドキュメントにスタイルが正しく適用されています。私はgulpを呼び出すことによって資産を見始める。私はgulp
を実行して、デフォルトのタスク(すべてを正しくビルドし、資産を連結します)を呼び出します。
これは私の実動ファイルを破壊しません。私はファイルを編集するまでではありません(そしてgulpがそれを検出し、必要なタスクを再度実行します)。
これは私が言ったことは意味を成していない場合、私はこの問題を呼び出す方法を体系的にリストアップします
//Node dependencies
var gulp = require('gulp'),
minifyCSS = require('gulp-clean-css'),
minifyJS = require('gulp-uglify'),
rename = require('gulp-rename'),
sass = require('gulp-sass'),
pump = require('pump'),
sync = require('run-sequence');
//Sass transpilation task
gulp.task('sass', function(cb) {
pump([
gulp.src('app/scss/*.scss'),
sass(),
gulp.dest('app/css')
], cb);
});
//Uglify CSS task
gulp.task('ugCSS', function(cb) {
pump([
gulp.src('app/css/*.css'),
minifyCSS(),
rename({
suffix: ".min"
}),
gulp.dest('dist/css')
], cb);
});
//Uglify JS task
gulp.task('ugJS', function(cb) {
pump([
gulp.src('app/js/*.js'),
minifyJS(),
rename({
suffix: ".min"
}),
gulp.dest('dist/js')
], cb);
});
//Watch task
gulp.task('watch', function() {
return gulp.watch('app/scss/*.scss', ['default']);
});
//Default task to make sure everythings runs syncronously
gulp.task('default', function(callback) {
sync('sass', 'ugCSS', 'ugJS', 'watch', callback);
});
私gulpfileです。
- 一気:、私は私のスタイリングに変更をしたいので、私は、ファイルを編集します。これはデフォルトタスク(このdoesntのブレークスタイリング)IDEで
- 編集.scssファイルを実行しますgulp watchタスクはこれを検出し、再び 'default'タスクを返し、サイクルをもう一度開始します。
- ブラウザを開いて、適用されたスタイリングを確認するためにサイトに移動します:これはどこでも壊れています。私のスタイリングはすべて削除されています。私のCSSの 'gulp.dest'ファイル配布フォルダ)は空白です。
- gulp:以前のgulpプロセスをキャンセルしてもう一度実行すると、問題が解決されます。/distのcssファイルに戻ると、すべてのスタイルがそこにあります。私は「積極的に」
.scss
ファイルを編集し、一気の時計タスクが生産フォルダにファイルを構築するために必要なタスクを呼び出し、その関連文書はそれらの変更を見ることができるとき
かいつまんで、私のスタイルはのみ削除されます。
は時計に代わり「デフォルト」タスクのテストを行い、正確にスタイルをコンパイルするかどうかを確認するために 'sass'ジョブを実行してください – emvidi
同じことを試してみました。もし私がgulp sassのように自分自身でsassタスクを実行すると、うまく動作します。 watchタスクを実行して、watchタスクが変更を検出し、sassタスクを実行すると、その場所が破損します。 –
私は同様の状況に直面しており、問題はタスクが順番に行われていないことにあると思います。 'sass'が仕事を終える前に 'ugCSS'が実行されていることを確認してください。 – emvidi