Nuxt/examples/style-resources
Rafał Chłodnicki 9e966a8f3c
chore(examples): use `2.x` version of nuxt instead of latest (#19737)
2023-03-16 06:24:27 -07:00
..
assets example: Add Less file to show multi pre-processors 2018-01-08 10:41:30 +01:00
pages refactor: use PascalCase for components names (#4396) 2018-11-24 22:19:19 +03:30
README.md refactor: use nuxt everywhere (#8210) 2020-11-30 23:44:04 +01:00
nuxt.config.js feat: rewrite core to esm 2018-03-16 19:42:06 +03:30
package.json chore(examples): use `2.x` version of nuxt instead of latest (#19737) 2023-03-16 06:24:27 -07:00

README.md

Using build.styleResources with Nuxt

This is useful when you need to inject some variables and mixins in your pages without having to import them every time.

Nuxt uses https://github.com/yenshih/style-resources-loader to achieve this behaviour.

You need to specify the patterns/path you want to include for the given pre-processors: css, less, sass, scss or stylus

⚠️ You cannot use path aliases here (~ and @), you need to use relative or absolute paths.

nuxt.config.js:

{
  build: {
    styleResources: {
      scss: './assets/variables.scss',
      less: './assets/*.less',
      // sass: ...,
      // scss: ...
      options: {
        // See https://github.com/yenshih/style-resources-loader#options
        // Except `patterns` property
      }
    }
  }
}

⚠️ If you want to use @import in these styleResources files, you should use path alias (~@) like this

@import '~@/assets/other.scss';

Then in your pages, you can use directly:

pages/index.vue

<template>
  <div class="main">
    <p>Page with SCSS</p>
    <p><NuxtLink to="/less">LESS</NuxtLink></p>
  </div>
</template>

<style lang="scss">
/* ~/assets/variables.scss is injected automatically here */
.main {
  background: $main;
}
</style>

Thanks to 0pt1m1z3r for adding this feature and example.