UNPKG

stylelint-sass-render-errors

Version:

Display Sass render errors and deprecations as lint errors.

129 lines (86 loc) 3.82 kB
# stylelint-sass-render-errors [![Build Status][ci-img]][ci] Display Sass render errors and deprecations as lint errors. Implementation details: - Sass deprecations are treated same as errors since [Sass tries to move language forward](https://github.com/sass/libsass/issues/2822#issuecomment-482914373) and each deprecation should be corrected as soon as possible in your codebase - Plugin operates on each file in isolation so if you have global `@import` statements, they won’t be applied and you could get errors for e.g. undefined variables. Recommendation is to switch to [Sass modules](https://sass-lang.com/documentation/modules) and [`@use`/`@forward` statements](https://sass-lang.com/documentation/at-rules/use) - Sass (_only Dart Sass is supported_) should be installed as peer dependancy because each version has different set of errors and deprecations and you should get results for Sass version your application uses ## Install ```sh npm install stylelint-sass-render-errors --save-dev ``` ## Usage Add this config to your `.stylelintrc`: ```json { "plugins": ["stylelint-sass-render-errors"], "rules": { "plugin/sass-render-errors": true } } ``` <!-- prettier-ignore-start --> ```scss @use 'sass:color'; @use 'sass:math'; .becky { color: color.invert(1); /** ↑ * Passing a number (1) to color.invert() is deprecated. Recommendation: invert(1). */ } #marley { width: math.percentage(100 / 2); /** ↑ * Using / for division is deprecated and will be removed in Dart Sass 2.0.0. Recommendation: math.div(100, 2). More info and automated migrator: https://sass-lang.com/d/slash-div. */ } ``` <!-- prettier-ignore-end --> ## Options Plugin accepts either boolean (`true`) or object configuration. If boolean, it will use default configuration: - `sass.render` for rendering Sass files and resolving errors and deprecations - Undefined functions are not checked - No options for Sass renderer other than `file` if file is linted or `data` if CSS string is linted If object configuration, following properties are valid: ### sync Type: `boolean` Default: `false` Rendering mode for Sass render. Can be either `false` for `sass.compileAsync` and `sass.compileStringAsync` or `true` for `sass.compile` and `sass.compileString`. ### sassOptions Type: `string|sass.Options|sass.StringOptions` If object, it is either [`sass.Options`](https://sass-lang.com/documentation/js-api/interfaces/options/) or [`sass.StringOptions`](https://sass-lang.com/documentation/js-api/interfaces/stringoptions/). If string, it is config file location which returns one of the following default exports: - Sass options object - Async or regular function returning Sass options object Config file location is [resolved](https://github.com/sindresorhus/resolve-from) relatively from the [closest `package.json` location](https://github.com/sindresorhus/pkg-up) inside current working directory. ### checkUndefinedFunctions Type: `boolean` Default: `false` [Check undefined functions](https://github.com/niksy/sass-render-errors#undefined-functions). ### disallowedKnownCssFunctions Type: `string[]` Default: `[]` [List of disallowed known CSS functions](https://github.com/niksy/sass-render-errors#options). ### additionalKnownCssFunctions Type: `string[]` Default: `[]` [List of additional known CSS functions](https://github.com/niksy/sass-render-errors#options). ## License MIT © [Ivan Nikolić](http://ivannikolic.com) <!-- prettier-ignore-start --> [ci]: https://github.com/niksy/stylelint-sass-render-errors/actions?query=workflow%3ACI [ci-img]: https://github.com/niksy/stylelint-sass-render-errors/actions/workflows/ci.yml/badge.svg?branch=master <!-- prettier-ignore-end -->