Ich versuche, Gulp Aufgabe für Sass/Js Compilation zu erstellen, und ich habe auch Code für Live-Reload enthalten. Es funktioniert gut, außer dass manchmal gulp.src leere Dateien in die Pipe wirft, wenn ich sie bearbeite.Gulp src gibt leere Datei zurück
var gulp = require('gulp');
var sass = require('gulp-sass'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
clean = require('gulp-clean'),
debug = require('gulp-debug'),
livereload = require('gulp-livereload'),
lr = require('tiny-lr'),
server = lr(),
spawn = require('child_process').spawn,
node;
gulp.task('server', function() {
if (node) node.kill();
node = spawn('node', ['./index.js'], {stdio: 'inherit'});
node.on('close', function (code) {
if (code === 8) {
gulp.log('Error detected, waiting for changes...');
}
});
});
gulp.task('html', function() {
return gulp.src('./src/*.html')
.pipe(gulp.dest('./build'))
.pipe(livereload(server));
});
gulp.task('js', function() {
return gulp.src(['./src/js/*.js'], { base: './' })
Wenn Dateien Debug prüft die gulp.src
Ausgabe und die meiste Zeit es zeigt Dateien mit der richtigen Inhalte, sondern von Zeit zu Zeit diese Dateien sind leer gespeichert werden.
.pipe(debug())
.pipe(concat("all.min.js"))
.pipe(uglify())
.pipe(gulp.dest('./build/js'))
.pipe(livereload(server));
});
gulp.task('scss', function() {
return gulp.src('./src/scss/*.scss')
.pipe(sass())
.pipe(concat("all.css"))
.pipe(gulp.dest('./build/css/'))
.pipe(livereload(server));
});
gulp.task('listen', function(next) {
server.listen(35729, function(err) {
if (err) return console.error(err);
next();
});
});
gulp.task('clean', function(){
return gulp.src(['./build/*'], {read:false})
.pipe(clean());
});
gulp.task('watch', function() {
gulp.watch('./src/*.html', ['html']);
gulp.watch('./src/scss/*.scss', ['scss']);
gulp.watch('./src/js/*.js', ['js']);
gulp.watch('./index.js', ['server']);
});
gulp.task('default', ['clean', 'html', 'scss', 'js', 'listen', 'server', 'watch'], function() {
});
Ich bin mir nicht sicher, wie das zu beheben ist. Wenn ich schlucke, funktioniert es immer zuerst, aber später, wenn gulp.watch
Änderungen sieht, erscheint das Problem.
Es sieht so aus, als wären Dateien leer, wenn ich sie mit dem sftp-Paket in Sublime Text speichere. Es ist sehr seltsam, weil das Speichern mit Vim remote immer gut funktioniert.
Willkommen bei StackOverflow! Ich würde empfehlen, es als eine Antwort zu veröffentlichen und später Ihre eigene Antwort zu akzeptieren, damit andere Leute wissen, wie man dieses Problem der Frage leicht löst – Llopis