APC Build Tools
Gulp build scripts for front end APC projects
Task register helpers
register(gulp, config) ⇒ Object
Register gulp tasks based on a passed config object
Returns: Object - registerWatchers function and array of registered task names
| Param | Type | Default | Description |
|---|---|---|---|
| gulp | Object |
Gulp instance | |
| config | Object |
Config Object | |
| config.scssSrc | String |
Path of Sass files to lint and/or build | |
| config.jsSrc | Array | String |
Path[s] of Js files to lint | |
| config.jsEntry | Array | String |
Path[s] of Js files to build | |
| config.pugSrc | Array | String |
Path[s] of pug files to lint | |
| [config.scssIncludePaths] | Array |
[] |
SCSS include paths (for frameworks etc) |
| config.jsDest | String |
Destination for Js built files | |
| config.jsDestFilename | String |
Filename for built Js file | |
| config.cssDest | String |
Destination for built CSS | |
| config.jsSrc | Array | String |
Path[s] of Js files to lint | |
| config.imgSrc | Array | String |
Path[s] for image files to be built | |
| config.imgDest | String |
Destination for built image files | |
| [config.showFileSizes] | Boolean |
true |
Show file sizes in console output? |
| config.browserifyIgnore | Array |
Browserify paths to ignore |
Example
const gulp = require('gulp')
const register = require('apc-build').register(gulp, {
scssSrc: 'src/**\/*.scss',
scssIncludePaths: [],
cssDest: 'output/css',
showFileSizes: true
})
console.log(register)
// Returns
// {
// tasks: [ 'lint-sass', 'build-sass' ],
// registerWatchers: [Function: registerWatchers]
// }
register.registerWatchers(gulp)
Register watchers corresponding to the tasks already set up
Kind: method of [register] return(#register)
| Param | Type | Description |
|---|---|---|
| gulp | Object |
Gulp instance |
Example
const gulp = require('gulp')
const register = require('apc-build').register(gulp, config)
// Watchers corresponding to config values
// will be registered within watch task
gulp.task('watch', () => {
register.registerWatchers(gulp)
})
Gulp tasks
build-img(gulp, path, dest) ⇒function
Copy and compress images with imagemin
build-js(gulp, entries, dest, [destFilename], [showFileSizes], [browserifyIgnore]) ⇒function
Bundle and browserify front end JS files
build-sass(gulp, path, dest, scssIncludePaths, showFileSizes) ⇒function
Compile sass files
lint-js(gulp, path) ⇒function
Lint js files using eslint
lint-pug(gulp, path) ⇒function
Lint pug files using pug linter
lint-sass(gulp, path) ⇒function
Lint sass files using sass-lint
build-img(gulp, path, dest) ⇒ function
Copy and compress images with imagemin
Returns: function - Gulp task
| Param | Type | Description |
|---|---|---|
| gulp | Object |
Gulp instance |
| path | Array | String |
Path[s] for image files to be built |
| dest | String |
Output Destination |
Example
const gulp = require('gulp')
const tasks = require('apc-build')
gulp.task('build-img', tasks['build-img'](gulp, ['src/img/*'], 'dist/img'))
build-js(gulp, entries, dest, [destFilename], [showFileSizes], [browserifyIgnore]) ⇒ function
Bundle and browserify front end JS files
Returns: function - Gulp task
| Param | Type | Default | Description |
|---|---|---|---|
| gulp | Object |
Gulp instance | |
| entries | String | Array |
Path[s] of Js files to build | |
| dest | String |
Destination for Js built files | |
| [destFilename] | String |
'bundle.js' |
Filename for built Js file |
| [showFileSizes] | Boolean |
true |
Show file sizes in console output? |
| [browserifyIgnore] | Array |
[] |
Browserify paths to ignore |
Example
const gulp = require('gulp')
const tasks = require('apc-build')
gulp.task('build-js', tasks['build-js'](gulp, ['src/js/entry.js'], 'dist/js', 'bundle.js'))
build-sass(gulp, path, dest, scssIncludePaths, showFileSizes) ⇒ function
Compile sass files
Returns: function - Gulp task
| Param | Type | Description |
|---|---|---|
| gulp | Object |
Gulp instance |
| path | Array | String |
Path of Sass files to build |
| dest | String |
Destination for built CSS |
| scssIncludePaths | Array |
Sass include paths (for frameworks etc) |
| showFileSizes | Boolean |
Show file sizes in console output? |
Example
const gulp = require('gulp')
const tasks = require('apc-build')
gulp.task('build-sass', tasks['build-sass'](gulp, ['src/scss/*.scss'], 'dist/css', ['node_modules/foundation-sites/scss']))
lint-js(gulp, path) ⇒ function
Lint js files using eslint
Returns: function - Gulp task
| Param | Type | Description |
|---|---|---|
| gulp | Object |
Gulp instance |
| path | Array | String |
Path[s] of Js files to lint |
Example
const gulp = require('gulp')
const tasks = require('apc-build')
gulp.task('lint-js', tasks['lint-js'](gulp, ['src/js/*']))
lint-pug(gulp, path) ⇒ function
Lint pug files using pug linter
Returns: function - Gulp task
| Param | Type | Description |
|---|---|---|
| gulp | Object |
Gulp instance |
| path | Array | String |
Path[s] of pug files to lint |
Example
const gulp = require('gulp')
const tasks = require('apc-build')
gulp.task('lint-pug', tasks['lint-pug'](gulp, ['app/views/*.pug']))
lint-sass(gulp, path) ⇒ function
Lint sass files using sass-lint
Returns: function - Gulp task
| Param | Type | Description |
|---|---|---|
| gulp | Object |
Gulp instance |
| path | String |
Path of Sass files to lint and/or build |
Example
const gulp = require('gulp')
const tasks = require('apc-build')
gulp.task('lint-sass', tasks['lint-sass'](gulp, 'src/scss/*'))
Utilities
is-gulp(gulp)
Test if object is an instance of gulp
Throws:
ErrorGulp instance not passed
| Param | Type | Description |
|---|---|---|
| gulp | Object |
Gulp instance |