作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 sass/js 编译创建 Gulp 任务,并且我还包含了用于实时重新加载的代码。它工作正常,但有时 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 中的 SFTP 需要更多时间来更新服务器上的文件。即使文件没有准备好,Gulp.watch 也会触发 gulp 任务。将 setTimeout() 添加到 gulp.watch 进程后,我现在每次保存时它都在工作。
gulp.watch('./src/js/*.js', function() {
setTimeout(function () {
gulp.start('js');
}, 300);
});
关于Gulp src 返回空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22069150/
我是一名优秀的程序员,十分优秀!