@ilabdev/styles

1.0.0 • Public • Published

@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

Package Sidebar

Install

npm i @ilabdev/styles

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

14.3 kB

Total Files

5

Last publish

Collaborators

  • apalfrey