Nuxt.js|SCSS

Vueファイル内でSCSSを使えるように

sass-loaderをインストール

$ npm install sass-loader node-sass --save-dev

これで.vueファイル内に直接scssで書けるぽいです。

書くときはstyleタグにアトリビュートで言語を追加して、その中にscssで記述する。

<style lang="scss">
body {
  background-color: lightgray;
}
</style>

共通のSCSSファイル

scssファイルの配置

assets下にsassフォルダを作成して、scssファイルを格納。

[assets]
- [sass]
 - app.scss

特に指定のフォルダ構成があるわけではなく任意の構成、名称でOK。
これを設定ファイルから参照させると、コンパイルした上でソースに埋め込んでくれるぽい。
従来の、sassの書き出し設定で静的cssの書き出し場所を指定してHTMLからはそのパスを参照する、とかの手順がいらない。

@importとかも全然いける

こういう構成で

[assets]
- [sass]
 - app.scss
 - common.scss

app.scssにこう書けばOK。

@import "~assets/sass/common.scss"

設定ファイルへの記述

nuxt.config.jsに、scssのパスを指定する。

これだけで完了。なにこれ楽ちん。

// Global CSS (https://go.nuxtjs.dev/config-css)
css: [
  { src: '~/assets/sass/app.scss', lang: 'scss' },
],