CSS Automation
with GulpJS
By Raymon Schouwenaar
By Raymon Schouwenaar
#2
After this video, you know how to...
create a Gulpfile
automatically create minified CSS files
merge multiple CSS files into 1 single file
automatically refresh the browser
By Raymon Schouwenaar
#2
Before we start check
Check if you installed NodeJS & NPM
Check if you have created an package.json file
If not check episode #1 of the Frontend Workflow.
By Raymon Schouwenaar
#2
How to create
a Gulpfile
By Raymon Schouwenaar
#2
Make sure you installed these packages globally
Gulp
Browser-sync
$ npm install gulp browser-sync -g
// For Mac and Linux
$ sudo npm install gulp browser-sync -g
Run this command in your terminal
By Raymon Schouwenaar
#2
Install these packages in your project folder
Gulp, Gulp-clean-css, Gulp-concat-css and Browser-sync
$ npm install gulp gulp-clean-css gulp-concat-css browser-sync --save-dev
Run this command in your terminal. With --save-dev it will be added to the package.json
By Raymon Schouwenaar
#2
Create the gulpfile.js in your project folder and add this to the file.
var gulp = require('gulp');
gulp.task('css', function() {
gulp.src('src/css/style.css')
.pipe(gulp.dest('dist/resoure/css'));
});
By Raymon Schouwenaar
#2
Run this command
$ gulp css
Run this command in your terminal.
With this command you copy your CSS file to 'dist/resource/css'
By Raymon Schouwenaar
#2
How to create minified CSS files automatically
By Raymon Schouwenaar
#2
Add the gulp-clean-css package
var gulp = require('gulp');
var cleanCSS = require('gulp-clean-css');
gulp.task('css', function() {
gulp.src('src/css/style.css')
.pipe(cleanCSS())
.pipe(gulp.dest('dist/resoure/css'));
});
By Raymon Schouwenaar
#2
Run this command
$ gulp css
Run this command in your terminal.
With this command your CSS will be minified and copieëed to 'dist/resource/css'
By Raymon Schouwenaar
#2
Let's automate this!
var gulp = require('gulp');
var cleanCSS = require('gulp-clean-css');
gulp.task('css', function() {
gulp.src('src/css/style.css')
.pipe(cleanCSS())
.pipe(gulp.dest('dist/resoure/css'));
});
gulp.task('default', ['css'], function () {
gulp.watch('src/css/style.css', ['css']);
});
By Raymon Schouwenaar
#2
Run this command
$ gulp
Run this command in your terminal.
With this command you launch a watch event on your CSS file, when the file is changed, it will run the CSS task.
By Raymon Schouwenaar
#2
How to merge multiple CSS file into 1 file
By Raymon Schouwenaar
#2
var gulp = require('gulp');
var cleanCSS = require('gulp-clean-css');
var concatCss = require('gulp-concat-css');
gulp.task('css', function() {
gulp.src([
'src/css/style.css',
'src/css/second.css'
])
.pipe(concatCss("bundle.css"))
.pipe(cleanCSS())
.pipe(gulp.dest('dist/resoure/css'))
.pipe(browserSync.stream());
});
gulp.task('default', ['css'], function () {
gulp.watch('src/css/style.css', ['css']);
});
Add the gulp-concat-css package
By Raymon Schouwenaar
#2
Run this command
$ gulp
Run this command in your terminal.
With this command, the CSS will be merged to 1 file, then will be minified and copieëed to the 'dist/resource/css' folder. After this the watch event will be launched.
By Raymon Schouwenaar
#2
How to refresh the browser automatically
By Raymon Schouwenaar
#2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Frontend Workflow #2: CSS Automation</title>
<link rel="stylesheet" href="dist/resoure/css/bundle.css">
</head>
<body>
<h1>Frontend Workflow #2: CSS Automation</h1>
<p>This cool page is awesome</p>
</body>
</html>
Create a index.html
By Raymon Schouwenaar
#2
var gulp = require('gulp');
var cleanCSS = require('gulp-clean-css');
var concatCss = require('gulp-concat-css');
var browserSync = require('browser-sync').create();
gulp.task('css', function() {
gulp.src([
'src/css/style.css',
'src/css/second.css'
])
.pipe(concatCss("bundle.css"))
.pipe(cleanCSS())
.pipe(gulp.dest('dist/resoure/css'))
.pipe(browserSync.stream());
});
gulp.task('serve', function() {
browserSync.init({
server: "./"
});
});
gulp.task('default', ['serve', 'css'], function () {
gulp.watch('src/css/*.css', ['css']);
gulp.watch('./index.html').on('change', browserSync.reload);
});
Add the browser-sync package
By Raymon Schouwenaar
#2
Run this command
$ gulp
Run this command in your terminal.
Now the localhost will be started, the CSS task run after this. When it is done there is an localhost and IP address in the terminal you can copy/paste in your browser.
By Raymon Schouwenaar
#2
Change your CSS and HTML
From now on, the browser will automatically refresh.
By Raymon Schouwenaar
#2
Mobile device refresh
For refreshing the website on a mobile device, connect to wifi and use the IP-address in the terminal
By Raymon Schouwenaar
Thanks for watching the video and Good luck!