将 Vinyl FTP 部署添加到现有 gulp 监视工作流程
Add Vinyl FTP deploy to an existing gulp watch workflow
我对 Gulp 没有什么经验,只是希望能够在 Gulp 从我的 SASS 文件创建它后立即自动上传我的 css 文件gulpwatch:css
我已经尝试将 'deploy' 任务添加到 gulp watch:css 任务中,但是我无法在 [=25= 之后将部署任务添加到 运行 ] 文件被创建。它总是 运行 秒之前。
这是我尝试将 'deploy' 添加到 gulp watch:css 任务的相关代码...
gulp.task('watch:css', ['styles', 'deploy'], function() {
return gulp.watch(options.theme.sass + '**/*.scss', options.gulpWatchOptions, ['styles', 'deploy']);
});
gulp.task('styles', ['clean:css'], function() {
return gulp.src(sassFiles)
.pipe($.sourcemaps.init())
.pipe(sass(options.sass).on('error', sass.logError))
.pipe($.autoprefixer(options.autoprefixer))
.pipe($.size({showFiles: true}))
.pipe($.sourcemaps.write('./'))
.pipe(gulp.dest(options.theme.css))
.pipe($.if(browserSync.active, browserSync.stream({match: '**/*.css'})))
});
var gutil = require( 'gulp-util' );
var ftp = require( 'vinyl-ftp' );
gulp.task( 'deploy', function () {
var conn = ftp.create( {
host: 'xxx.com',
user: 'xxx',
password: 'xxx',
parallel: 10,
log: gutil.log
} );
var globs = [
'css/styles.css'
];
// 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( '/' ) ) // only upload newer files
.pipe( conn.dest( '/' ) );
} );
想通了...
'watch:css' 任务调用我的 'deploy' 任务而不是 'styles':
gulp.task('watch:css', ['deploy'], function() {
return gulp.watch(options.theme.sass + '**/*.scss', options.gulpWatchOptions, ['deploy']);
});
'styles' 任务保持原样
'deploy' 任务将 'styles' 任务作为依赖项,如下所示
gulp.task( 'deploy', ['styles'], function () {
现在 运行 'gulp watch:css' 它会在我的 SASS 文件的每次更改时触发 'deploy' 函数,这反过来会触发 'styles' 函数编译我的 CSS.
我对 Gulp 没有什么经验,只是希望能够在 Gulp 从我的 SASS 文件创建它后立即自动上传我的 css 文件gulpwatch:css
我已经尝试将 'deploy' 任务添加到 gulp watch:css 任务中,但是我无法在 [=25= 之后将部署任务添加到 运行 ] 文件被创建。它总是 运行 秒之前。
这是我尝试将 'deploy' 添加到 gulp watch:css 任务的相关代码...
gulp.task('watch:css', ['styles', 'deploy'], function() {
return gulp.watch(options.theme.sass + '**/*.scss', options.gulpWatchOptions, ['styles', 'deploy']);
});
gulp.task('styles', ['clean:css'], function() {
return gulp.src(sassFiles)
.pipe($.sourcemaps.init())
.pipe(sass(options.sass).on('error', sass.logError))
.pipe($.autoprefixer(options.autoprefixer))
.pipe($.size({showFiles: true}))
.pipe($.sourcemaps.write('./'))
.pipe(gulp.dest(options.theme.css))
.pipe($.if(browserSync.active, browserSync.stream({match: '**/*.css'})))
});
var gutil = require( 'gulp-util' );
var ftp = require( 'vinyl-ftp' );
gulp.task( 'deploy', function () {
var conn = ftp.create( {
host: 'xxx.com',
user: 'xxx',
password: 'xxx',
parallel: 10,
log: gutil.log
} );
var globs = [
'css/styles.css'
];
// 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( '/' ) ) // only upload newer files
.pipe( conn.dest( '/' ) );
} );
想通了...
'watch:css' 任务调用我的 'deploy' 任务而不是 'styles':
gulp.task('watch:css', ['deploy'], function() {
return gulp.watch(options.theme.sass + '**/*.scss', options.gulpWatchOptions, ['deploy']);
});
'styles' 任务保持原样
'deploy' 任务将 'styles' 任务作为依赖项,如下所示
gulp.task( 'deploy', ['styles'], function () {
现在 运行 'gulp watch:css' 它会在我的 SASS 文件的每次更改时触发 'deploy' 函数,这反过来会触发 'styles' 函数编译我的 CSS.