SPA/Next.js

[Next.js] 04. Next.js에 Sass 적용하기

김Boolean 2022. 8. 11. 16:57

개인적으로 css보다는 Sass가 더 편하고 유용하다고 생각하기에 이번엔 Next.js 프로젝트에 Sass를 적용하는 방법에 대해 배워보자.

 

1. Sass 설치

Sass를 적용할 Next.js 프로젝트에 아래 명령어를 입력하여 Sass를 설치해주자.

npm i sass //--- npm
yarn add sass //--- yarn

 

npm보다는 yarn을 이용해 Sass를 설치하는 게 오류가 안 나기에 추천한다.

 


 

2. css 파일 => scss 파일

기존에 생성되어 있는 css 파일 또한 전부 scss 파일로 변경해준다.

styles/global.css => styles/global.scss
styles/Home.module.css => styles/Home.module.scss

 


 

3. next.config.js 파일 수정

next.config.js에 아래와 같이 sassOption을 추가한다.

// next.config.js

const path = require('path'); // 1. path 선언

const nextConfig = {
  reactStrictMode: true,
  sassOptions: {
    includePaths: [path.join(__dirname, 'styles')], // 2. sassOptions 옵션 추가
  },
};

module.exports = nextConfig;

 


 

4. _variables.scss, _mixins.scss 파일 생성

모든 scss 파일에서 공통으로 사용할 _variables.scss, _mixins.scss 파일을 styles 디렉토리에 생성한다.

 


 

5. next.config.js 파일 수정

이제 next.config.js에 prependData 옵션을 추가한다.

이로써 모든 파일에서 _variables.scss, _mixins.scss 두 파일에서 선언한 변수를 모든 파일에서 사용할 수 있다.

// next.config.js

const path = require('path'); 

const nextConfig = {
  reactStrictMode: true,
  sassOptions: {
    includePaths: [path.join(__dirname, 'styles')],
    prependData: `@import "styles/_variables.scss"; @import "styles/_mixins.scss";`, // prependData 옵션 추가
  },
};

module.exports = nextConfig;

 

이제 scss 파일을 생성하면 별다른 과정 없이 css 파일과 동일하게 적용되는 것을 확인할 수 있다.

 

다음 시간에는 더 간편한 styled jsx에 대해 배워보자.