我正在嘗試爲sass/js編譯創建gulp任務,並且還包含了實時重新加載的代碼。它工作正常,但有時gulp.src會在編輯它們時將空文件引入管道。gulp src返回空文件
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: './' })
當文件被保存的調試正在檢查gulp.src
輸出和大部分顯示了適當的內容,但不時這些文件是空文件的時間。
.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() {
});
我不知道該如何解決。當我運行吞噬它始終工作最初,但後來當gulp.watch
看到變化的問題出現。
當我在Sublime Text中使用sftp包保存它們時,它看起來像文件最終爲空。它非常奇怪,因爲用Vim遠程保存總是很好用。
歡迎來到StackOverflow!我建議將它作爲答案發布,然後再接受你自己的答案,以便其他人可以知道如何輕鬆解決這個問題 – Llopis