Next.jsに入門しました。Next.jsでアプリケーションを作る際に、スタイルをscssで書きたいときに、どうすればよいか調べた結果をまとめておきます。
Next.jsの開発元のzeitが、sass(scss)を扱うプラグインをnpmパッケージとして公開していました。 それが、@zeit/next-sass です。
公式ドキュメントに沿ってやってみました。
npm
かyarn
でプロジェクトに追加します。
僕はもっぱらnpm
を使っているので、
npm install --save @zeit/next-sass node-sass
でインストールしました。
next-sass
を使うには、Next.jsプロジェクトの設定ファイルであるnext.config.js
を編集します。
で、設定が若干変わるようです。
CSS moduleを使わない場合は、next.config.js
は↓のように書きます。
const withSass = require('@zeit/next-sass')
module.exports = withSass({
/* config options here */
})
CSS moduleを使う場合は、next.config.js
は↓のように書きます。
const withSass = require('@zeit/next-sass')
module.exports = withSass({
cssModules: true
})
いずれにしてもnext.config.js
で、withSass
関数を呼んであげることで、scssが使えるようになるので、実際にscssでスタイルを書いてみます。
/path/to/project-root/styles/styles.scss
というファイルを作って、
html {
height: 100%;
width: 100%;
}
としてみました。
そして、このスタイルをページ(/path/to/project-root/pages/index.js
)で次のように引き込んでみました。
import '../styles/styles.scss';
export default function Index() {
return (
<div>
<p>Hello Next.js</p>
</div>
);
}
結果、
のように、styles/styles.scss
がページに適用されました。
これで、scssを使ったスタイルが定義できそうです!