@ilabdev/styles
v1.0.0
Published
Gulp tasks for linting & compiling styles
Downloads
1
Maintainers
Readme
@ilabdev/styles
Gulp tasks for linting & compiling styles
Installation & set up
Install @ilabdev/styles
npm install @ilabdev/styles --save-dev
-- OR --
yarn add @ilabdev/styles --dev
Include @ilabdev/styles
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/styles' )( gulp )
Add the content from config.sample.js
to your .gulpconfig.js
and adjust as appropriate
module.exports = {
// Other configs here...
styles: {
process: true,
watch: true,
logColor: 'yellow',
areas: [
{
paths: {
src: './src/scss/styles.scss',
watch: './src/scss/**/*',
dest: './dist/css',
},
minify: {
process: true,
separate: false,
},
pipes: {
// Put any pipe overrides here
src: {
allowEmpty: true,
base: './src/scss',
sourcemaps: true,
},
dest: {
sourcemaps: '.',
},
},
},
],
pipes: {
filters: {
lint: [
'**/*.scss',
],
build: [
'**/*.scss',
'!**/_*.scss',
],
},
watch: {
events: 'all',
},
stylelint: {
// Overrides the version of stylelint used
stylelint: null,
options: {
formatter: 'verbose',
},
},
sass: {
// Overrides the version of sass used
sass: null,
options: {
outputStyle: 'expanded',
errLogToConsole: true,
},
},
postcss() {
return {
plugins: [
require( 'autoprefixer' )( {
cascade: false,
} ),
],
options: {},
}
},
cssnano: {
preset: [
'default',
{
cssDeclarationSorter: false,
svgo: false,
},
],
},
},
},
// Other configs here...
}
Run gulp styles
to run the linting & compiling tasks, gulp styles:lint
to run the linting task, gulp styles:build
to run the compiling task, gulp styles: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 styles or not
watch
Type: boolean
Whether to watch styles 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 styles. Passed through to gulp.dest
, items can be globs
areas[].paths.minify
Type: object
The options for minifying styles
areas[].paths.minify.process
Type: boolean
Whether to minify styles or not
areas[].paths.minify.separate
Type: boolean
Whether minified styles 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.stylelint
Type: object
Options for stylelint
pipes.stylelint.stylelint
Type: function|null
Overrides the version of stylelint used
pipes.stylelint.options
Type: object
Options to be passed through to stylelint. See https://stylelint.io/user-guide/node-api/#options for more information
pipes.sass
Type: object
Options for sass
pipes.sass.sass
Type: function|null
Overrides the version of sass used
pipes.sass.sync
Type: boolean
Whether to use the synchronous version of sass or not
NOTE: According to sass, the synchronous version is "almost twice as fast" as the asynchronous version
pipes.sass.options
Type: object
The input options to be passed through to sass
. See https://sass-lang.com/documentation/js-api/interfaces/options/ for more information
pipes.postcss
Type: function
Options to be passed through to gulp-postcss
. See https://www.npmjs.com/package/gulp-postcss for more information
pipes.cssnano
Type: object
Options to be passed through to cssnano
. See https://cssnano.co/docs/config-file/#configuration-options for more information