Skip to content

Instantly share code, notes, and snippets.

@bssanchez
Created May 16, 2019 15:18
Show Gist options
  • Select an option

  • Save bssanchez/7b818d649913894bb2cd6a44080cf52c to your computer and use it in GitHub Desktop.

Select an option

Save bssanchez/7b818d649913894bb2cd6a44080cf52c to your computer and use it in GitHub Desktop.
Config for development plain HTML site with GULP, BrowserSync and SASS
'use strict';
// Just changes directory names for yout folder distribution and run gulp
const { src, dest, series, watch } = require('gulp');
const sourcemaps = require('gulp-sourcemaps');
const cssnano = require('cssnano');
const sass = require('gulp-sass');
const postcss = require('gulp-postcss');
const autoprefixer = require('autoprefixer');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
const browserSync = require('browser-sync').create();
sass.compiler = require('node-sass');
function scss() {
const plugins = [
autoprefixer({ browsers: ['last 10 version'] }),
cssnano()
];
return src('./src/scss/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass.sync().on('error', sass.logError))
.pipe(postcss(plugins))
.pipe(sourcemaps.write('.'))
.pipe(dest('./assets/css'))
.pipe(browserSync.stream());
};
function javascript() {
return src('./src/javascript/*.js', { sourcemaps: true })
.pipe(concat('main.min.js'))
.pipe(uglify().on('error', (e) => console.log(e)))
.pipe(dest('./assets/js', { sourcemaps: true }))
.pipe(browserSync.stream());
}
function live() {
browserSync.init({
server: {
baseDir: "./"
}
});
watch(['./src/scss/**/*.scss'], scss);
watch(['./src/javascript/**/*.js'], javascript);
watch(['**/*.html']).on('change', browserSync.reload);
}
exports.scss = scss;
exports.javascript = javascript;
exports.default = series(scss, javascript, live);
{
"name": "gulp-sass-config",
"version": "1.0.0",
"description": "Config for development plain HTML site with GULP, BrowserSync and SASS",
"main": "index.html",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"gulp",
"sass",
"browser-sync"
],
"author": "Brandon Sanchez",
"license": "ISC",
"dependencies": {
},
"devDependencies": {
"autoprefixer": "^9.5.1",
"browser-sync": "^2.26.5",
"cssnano": "^4.1.10",
"gulp": "^4.0.2",
"gulp-concat": "^2.6.1",
"gulp-postcss": "^8.0.0",
"gulp-sass": "^4.0.2",
"gulp-sourcemaps": "^2.6.5",
"gulp-uglify": "^3.0.2",
"node-sass": "^4.12.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment