Next.js + Ant Design + styled-components
를 사용하면서 생긴 오류인데 경고 문구에 적혀있듯이 서버와 클라이언트의 클래스명이 다른 것이 원인이다. babel-plugin-styled-components
이다.$ npm install babel-plugin-styled-components
루트 디렉토리에 .babelrc
파일을 만들고 아래처럼 작성해 주면 된다.
{
"presets": ["next/babel"],
"plugins": ["babel-plugin-styled-components"]
}
babel 대신 SWC를 사용하기 위해 babel-plugin-styled-components
와 .babelrc
제거 후, next.config.js
에 styledComponents를 추가해 주면 오류가 사라지는 것을 볼 수 있다.
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
swcMinify: true, // 코드 경량화
compiler: {
styledComponents: true,
},
};
module.exports = nextConfig;
참고
https://nextjs.org/docs/architecture/nextjs-compiler#styled-components
https://fe-developers.kakaoent.com/2022/220217-learn-babel-terser-swc/
https://styled-components.com/docs/tooling#serverside-rendering