CSS Preprocessors

CSS pre-processors like Sass, SCSS, Less and Stylus are still popular today, so it's natual that Saber supports them out of the box. However relevant dependencies for transpilation are required, be sure to follow the installation instructions below.

Sass / SCSS

yarn add sass-loader sass --dev

Then you can import .scss and .sass files. If you want to import files from node_modules, make sure to add ~ prefix as follows:

// importing a css file from the nprogress node module
@import '~nprogress/nprogress';

Less

yarn add less-loader less --dev

Stylus

yarn add stylus-loader stylus --dev

Passing Options to Pre-Processor Loaders

Sometimes you may want to pass options to the pre-processor's webpack loader. You can do that using the build.loaderOptions option in saber-config.js. For example, to pass some shared global variables to all your Sass/Less styles:

module.exports = {
  build: {
    loaderOptions: {
      // pass options to sass-loader
      sass: {
        // @/ is an alias to your project root
        // so this assumes you have a file named `scss/variables.scss`
        data: `@import "@/scss/variables.scss";`
      },
      // pass Less.js Options to less-loader
      less:{
        // http://lesscss.org/usage/#less-options-strict-units `Global Variables`
        // `primary` is global variables fields name
        globalVars: {
          primary: '#fff'
        }
      }
    }
  }
}