gulp-easy
v0.2.7
Published
Npm package for fast and easy compile js, less and other files with gulp.
Readme
gulp-easy
Npm package for fast and easy compile js, less and other files with gulp.
Install
npm install --save-dev gulp gulp-easy
Tasks and production mode
Module gulp-easy export two public tasks:
defaultfor developer (with watch and without compress);productionfor production builds.
Also you can append argument --production for production builds:
node $SOURCE_DIR/node_modules/gulp/bin/gulp.js --gulpfile $SOURCE_DIR/gulpfile.js --productionConfiguration
Configuration in gulp-easy is optional, but you can set in through config() method:
require('gulp-easy')(require('gulp'))
.config({
dest: './app/dest',
less: {
minifycss: {
compatibility: 'ie7'
}
}
})
.less(/* ... */)Also each task method (js, less, files, ..) have config argument for overwrite config:
require('gulp-easy')(require('gulp'))
.config({
dest: './app/dest'
})
.less('less/index.less', 'public/app.css', {
minifycss: {
compatibility: 'ie7'
}
})Default config (without methods configs):
{
dest: 'public', // destination folder
name: 'app', // default destination file name
compress: null, // auto, `true` in production
watch: null, // auto, `false` in production
}Examples of gulpfile.js file
Most minimalistic gulp file. Default file name is app, default destination dir is public.
The task performs:
- Compile
less/index.lessfile with it imports to csspublic/app.css. - Concat and compile as common js all javascript files from folder
jsto filepublic/app.js. - Copy all files from folder
images(recursive) to folderpublic/images.
require('gulp-easy')(require('gulp'))
.less('less/index.less')
.js('js/*.js')
.files('images/**/*', 'public/images/')Normal gulp file without defaults. You can many call api methods for create tasks. The task performs:
- Concat and compile less files
less/header.less,less/header.lessto cssapp/public/style.css. Destination folder specified in config. - Compile as common js file
js/app1/index.jsto fileapp/public/lib/main.js. - Compile as common js file
js/app2/index.jsto fileapp/public/lib/main-two.js. - Run custom task for copy all files from folder
imagesto folderpublic/images2.
require('gulp-easy')(require('gulp'))
.config({
dest: 'app/public'
})
.less(['less/header.less', 'less/main.less'], 'style.css')
.js('js/app1/index.js', 'app/public/lib/main.js')
.js('js/app2/index.js', 'app/public/lib/main-two.js')
.task(function(gulp, taskName, isCompress, isWatch) {
gulp.src(['images/*']).pipe(gulp.dest('public/images2/'));
}, function(gulp, taskName, isCompress) {
gulp.watch(['images/*'], [taskName]);
})Methods api
js(src, dest, config)
Compile javascript files to bundle
src: string or array strings, glob format;dest: (optional) string file name or path to destination (output) file;config: (optional) custom configuration object. Default configuration is:
{
browserify: {}, // browserify config
uglify: {}, // uglify config
gzip: {}, // gzip config
transforms: [stringify] // browserify transforms
}Method do:
- compile common js code with
browserifyand ittransforms - write sourcemap, when
compressis disable - compress by
uglify, whencompressis enable - create gzip file, when
compressis enable
less(src, dest, config)
Compile less to css
src: string or array strings, glob format;dest: (optional) string file name or path to destination (output) file;config: (optional) custom configuration object. Default configuration is:
Method do:
- process less to css
- concat files to one
- minify by
minifycssmodule, whencompressis enable - write sourcemap, when
compressis disable - create gzip file, when
compressis enable
{
gzip: {}, // gzip config
minifycss: { // `gulp-minify-css` config
compatibility: 'ie9'
}
}files(src, dest)
Copy files
src: string or array strings, glob format;dest: (optional) string file name or path to destination (output) file;
Method do:
- copy source files to destination folder
task(taskHandler, watchHandler)
Add custom task
taskHandler(gulp, taskName, isCompress, isWatch: custom function for create gulp task;watchHandler(gulp, taskName, isCompress): (optional) custom function for watch on sources;
Handlers arguments:
gulp: gulp instancetaskName: string, auto generated task name (in format_taskXX). Use it for run task on watchisCompress: boolean, seecompressparam in config sectionisWatch: boolean, seewatchparam in config section
