0
を使用しています。次のgulp設定を使用して、jasを小さくし、IDE(Atom)にドキュメントを保存するときにブラウザをライブリロードします。gulp livereloadは古くなったCSSファイル
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var sass = require('gulp-ruby-sass');
var plumber = require('gulp-plumber');
var livereload = require('gulp-livereload');
var prefix = require('gulp-autoprefixer');
/* ===== HTML TASKS ===== */
gulp.task('html', function(){
gulp.src('index.html')
.pipe(livereload());
});
/* ===== SCRIPT TASKS ===== */
//Uglifies
gulp.task('scripts', function(){
gulp.src('js/*.js')
.pipe(plumber())
.pipe(uglify())
.pipe(gulp.dest('js/minjs'));
});
/* ===== STYLE TASKS ===== */
//compiling and compressing scss files
gulp.task('styles', function() {
return sass('scss/**/*.scss', { style: 'compressed' })
.on('error', sass.logError)
.pipe(gulp.dest('css'))
.pipe(livereload());
});
/* ===== WATCH ===== */
//watches JS and SCSS
gulp.task('watch', function(){
livereload.listen();
gulp.watch('index.html', ['html']);
gulp.watch('js/*.js', ['scripts']);
gulp.watch('scss/*', ['styles']);
});
/* ===== DEFAULT ===== */
gulp.task('default', ['scripts', 'styles', 'watch']);
私のSassファイルの1つを編集すると、Chromeブラウザは自動的にローカルホスト(MAMP)ページを更新します。しかし、たとえばIDEのindex.htmlページを保存したり、ブラウザでページを更新したりすると、Chromeはコンパイル済みのCSSファイルの古いバージョンを使用し、現在の変更を表示しません。
なぜですか?そして私はこれをどのように修正するのですか?
は、ブラウザ上であなた無効キャッシュをお持ちですか? (キャッシュをクリアすることで助けになるかもしれません) –
watchタスクの一環として古いcssファイルを消去することはできますか? – harishr
'livereload()'が発行されたときに 'gulp.dest'が実際にファイルのコピーを完了していないことが起こります。私は現在、その問題を正確に処理しています。この単純なケースでは、 'gulp-wait'プラグインを使ってリロードする前に' gulp.dest'が終了するのを待つ方法があります。もちろん、これは正確な方法ではありません。私はまだ適切な解決策に取り組んでいます。 – Fencer