这是我的吞咽文件。修改后应编译scss并上传文件。它上传,但不总是。我做错了什么?
var gulp = require('gulp'),
watch = require('gulp-watch'),
gutil = require( 'gulp-util' ),
sass = require('gulp-sass'),
ftp = require( 'vinyl-ftp' );
gulp.task( 'deploy', function () {
var conn = ftp.create( {
host: 'host',
user: 'user@host',
password: 'pass',
parallel: 10,
log: gutil.log
} );
var globs = [
'src/**',
'css/**',
'build/**',
'js/**',
'fonts/**',
'index.html'
];
// using base = '.' will transfer everything to /public_html correctly
// turn off buffering in gulp.src for best performance
return gulp.src( globs, { base: '.', buffer: false } )
.pipe( conn.newer( '/test' ) ) // only upload newer files
.pipe( conn.dest( '/test' ) );
} );
gulp.task('css', function () {
return gulp.src('scss/**/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('css'))
});
gulp.task('watch', function (){
gulp.watch('scss/**/*.scss', ['css', 'deploy']);
});发布于 2016-05-07 08:43:45
这句话不像你想的那样:
gulp.watch('scss/**/*.scss', ['css', 'deploy']);此不运行,运行css任务,然后运行deploy任务。Gulp以最大并发性执行所有任务,除非您另有通知。
这意味着您的css和deploy任务在更改.scss文件时都会立即开始运行。根据css任务在deploy任务开始传输它们之前是否完成了对deploy文件的编译,这可能有效,也可能不行。
在deploy任务完成后,您需要告诉gulp只执行任务:
gulp.task( 'deploy', ['css'], function () {
//...
});https://stackoverflow.com/questions/37082355
复制相似问题