10/31追記
node-sass-glob-importer
を使用すると記載していましたが、nuxt-sass-resources-loader
のみで同等のことが可能だったため書き直しました。
Sassの変数やMixinsを使う
Nuxt.jsでは nuxt-sass-resources-loader
を使うことで、変数やMixinsなどを各コンポーネントで使えるようになります。
{
modules: [
['node-sass-resources-loader', '@/assets/styles/resources.sass']
]
}
@/assets/styles/resources.sass
=button($width: auto, $height: auto)
width: $width
height: $height
color: #333
border: 1px solid #ccc
&:disabled
background: #ccc
@/pages/login.vue
<style lang="sass" scoped>
.submit
+button(320px, 60px)
</style>
Globを使ってファイルを指定する
nuxt-sass-resources-loader
ではGlobを使ってファイルを指定することもできます。
nuxt.config.js
{
modules: [
['nuxt-sass-resources-loader', '@/assets/styles/resources/**/*.sass']
]
}
これで、styles/resources
以下のすべてのSassファイルを使用できるようになります。
読み込む順序を指定する
変数など、読み込む順番を気にしなければならない場合は、配列で指定します。
nuxt.config.js
{
modules: [
['nuxt-sass-resources-loader', [
'@/assets/styles/variables/**/*.sass',
'@/assets/styles/utilities/**/*.sass',
'@/assets/styles/components/**/*.sass'
]
]
}