Last active
September 16, 2022 18:23
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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']); | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Your code is great but does not rerun after a new save, I do not understand why it works only once
thanks