Skip to content

Instantly share code, notes, and snippets.

@topisani
Last active September 16, 2022 18:23
Show Gist options
  • Save topisani/3081dc1dc19dbc4cb962ebb6bc39c32d to your computer and use it in GitHub Desktop.
Save topisani/3081dc1dc19dbc4cb962ebb6bc39c32d to your computer and use it in GitHub Desktop.
Gulp build script to build sass and upload to an ftp server. has a watch task.
// Web build script. Builds sass and uploads to an ftp server.
// Place source to be uploaded in a folder next to the script called src.
// Sass file is src/sass/style.scss and will become src/css/style.css
// will upload all files to the specified root
// Configuration for script
var config = {
host: 'example.com',
user: 'user',
password: 'fish123',
root: '/public_html'
}
var gulp = require( 'gulp' );
var gutil = require( 'gulp-util' );
var ftp = require( 'vinyl-ftp' ),
sass = require('gulp-sass'),
sourcemaps = require('gulp-sourcemaps'),
autoprefixer = require('gulp-autoprefixer');
var globs = [
'src/**',
];
gulp.task( 'deploy', ['build-css'], function () {
var conn = ftp.create( {
host: config.host,
user: config.user,
password: config.password,
parallel: 8,
log: gutil.log
} );
return gulp.src( globs, { base: 'src/.', buffer: false } )
.pipe( conn.newer( config.root ) ) // only upload newer files
.pipe( conn.dest( config.root ) );
} );
gulp.task('build-css', function() {
return gulp.src('src/sass/style.scss')
.pipe(sass( { outputStyle: 'compressed' } ).on('error', sass.logError))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(gulp.dest('src/css'));
});
gulp.task('watch', ['build-css', 'deploy'], function() {
gulp.watch(globs, ['build-css', 'deploy']);
})
@jorane21
Copy link

Your code is great but does not rerun after a new save, I do not understand why it works only once
thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment