@ilabdev/scripts
v1.0.0
Published
Gulp tasks for linting & compiling scripts
Downloads
2
Maintainers
Readme
@ilabdev/scripts
Gulp tasks for linting & compiling scripts
Installation & set up
Install @ilabdev/scripts
npm install @ilabdev/scripts --save-dev
-- OR --
yarn add @ilabdev/scripts --dev
Include @ilabdev/scripts
in your gulpfile.js
NOTE: Make sure you pass gulp
through to the package as shown below. The package sets up gulp tasks and will need it passed through to work.
require( '@ilabdev/scripts' )( gulp )
Add the content from config.sample.js
to your .gulpconfig.js
and adjust as appropriate
module.exports = {
// Other configs here...
scripts: {
process: true,
watch: true,
logColor: 'magenta',
areas: [
{
paths: {
src: './src/js/scripts.js',
watch: './src/js/**/*',
dest: './dist/js',
},
minify: {
process: true,
separate: false,
},
pipes: {
// Put any pipe overrides here
src: {
allowEmpty: true,
base: './src/js',
sourcemaps: true,
},
dest: {
sourcemaps: '.',
},
},
},
],
pipes: {
filters: {
lint: [
'**/*.js',
],
build: [
'**/*.js',
'!**/libs/**/*.js',
],
},
watch: {
events: 'all',
},
eslint: {
// Overrides the version of eslint used
eslint: null,
formatter: 'stylish',
options: {
fix: false,
},
},
rollup: {
// Overrides the version of rollup used.
// Make sure to pass through the rollup function
// e.g. require( 'rollup' ).rollup
rollup: null,
input: {
plugins: [
require( '@rollup/plugin-babel' ).babel( {
exclude: 'node_modules/**',
babelHelpers: 'bundled',
} ),
require( '@rollup/plugin-node-resolve' ).nodeResolve(),
],
treeshake: false,
onwarn( e ) {
if ( e.code === 'THIS_IS_UNDEFINED' ) {
return
}
console.warn( e.message )
},
},
output: {
file: 'scripts.js',
name: 'Scripts',
format: 'umd',
generatedCode: 'es2015',
globals: {},
},
},
uglify: {
output: {
comments: '/^!|@preserve|@license|@cc_on/i',
},
},
},
},
// Other configs here...
}
Run gulp scripts
to run the linting & compiling tasks, gulp scripts:lint
to run the linting task, gulp scripts:build
to run the compiling task, gulp scripts:watch
to run the watch task, or add the task as a script and run that with npm
or yarn
Config
process
Type: boolean
Whether to lint & compile scripts or not
watch
Type: boolean
Whether to watch scripts for changes or not
loggerColor
Type: string
The logger color to use for any output text. See https://github.com/stgdp/fancy-logger#available-modifiers for colors that can be used
areas
Type: object[]
The areas to be linted & compiled. Each area has it's own, isolated settings to allow for separate configs
areas[].paths
Type: object
Path references for the linter & compiler
areas[].paths.src
Type: string[]|string
The paths to linted & compiled. Passed through to gulp.src
, items can be globs
areas[].paths.watch
Type: string[]|string
The paths to watched. These are combined into a single array and passed through to gulp.watch
areas[].paths.dest
Type: string
The destination path of the compiled scripts. Passed through to gulp.dest
, items can be globs
areas[].paths.minify
Type: object
The options for minifying scripts
areas[].paths.minify.process
Type: boolean
Whether to minify scripts or not
areas[].paths.minify.separate
Type: boolean
Whether minified scripts should be separate files or not
areas[].pipes
Type: object
Options to be passed through to the pipes.
areas[].pipes.src
Type: object
Options to be passed through to the gulp.src
pipe. See https://gulpjs.com/docs/en/api/src/ for more information
areas[].pipes.dest
Type: object
Options to be passed through to the gulp.dest
pipe. See https://gulpjs.com/docs/en/api/dest/ for more information
pipes
Type: object
Options to be passed through to the pipes.
pipes.filters
Type: object
Filters for each task
pipes.filters.lint
Type: string[]
Filters for the lint task
pipes.filters.build
Type: string[]
Filters for the build task
pipes.watch
Type: object
Options to be passed through to the gulp.watch
pipe. See https://gulpjs.com/docs/en/api/watch/ for more information
pipes.eslint
Type: object
Options for eslint
pipes.eslint.eslint
Type: class|null
Overrides the version of eslint used. Must pass through the eslint class e.g. require( 'eslint' ).ESLint
pipes.eslint.formatter
Type: string
The formatter to be used to output errors & warnings. See https://eslint.org/docs/latest/use/formatters/ for more information
pipes.eslint.options
Type: object
Options to be passed through to the eslint class. See https://eslint.org/docs/latest/integrate/nodejs-api#parameters for more information
pipes.rollup
Type: object
Options for rollup
pipes.rollup.rollup
Type: function|null
Overrides the version of rollup used. Must pass through the actual rollup function e.g. require( 'rollup' ).rollup
pipes.rollup.input
Type: object
The input options to be passed through to rollup
. See https://rollupjs.org/javascript-api/#inputoptions-object for more information
pipes.rollup.output
Type: object
The output options to be passed through to rollup
. See https://rollupjs.org/javascript-api/#outputoptions-object for more information
pipes.uglify
Type: object
Options to be passed through to gulp-uglify
. See https://www.npmjs.com/package/gulp-uglify for more information