DEV/DevelopSystem

[craco.js] babel-plugin-styled-components 적용하기

9thxg 2025. 1. 28. 14:14

const craco.js에서 babel-plugin-styled-components 적용하기 = ( Param ) => {

💻 return Result;

// craco.config.js

// eslint-disable-next-line no-undef
module.exports = {
  plugins: [
  	// craco를 통한 절대 경로 설정 등 webpack에 적용할 플러그인 정의
    // ...
  ],
  babel: {
    plugins: [
      // styled-components 플러그인 추가
      [
        'babel-plugin-styled-components',
        {
          // eslint-disable-next-line no-undef
          displayName: process.env.NODE_ENV !== 'production', // 빌드를 제외하고 styled-components 이름이 보이도록 함
          fileName: false,
        },
      ],
    ],
  },
};

 

📝 console.log( history )

 사이드 프로젝트 진행 중 절대 경로 설정 등에 관한 개발 환경 설정에 대해 맡게 되었다. 절대 경로는 tsconfig.json 뿐만 아니라 추가로 라이브러리를 적용해야 정상적으로 동작하는 것을 확인하고 craco 라이브러리를 통해 tsconfig.json의 설정을 적용할 수 있었다.

 

 추가로 팀원이 styled-components에 대한 디버깅을 하기 쉽도록 만들기 위해 이름이 클래스에 보였으면 좋겠다는 의견이 있었다. 그래서 구글링 해본 결과 babel-plugin-styled-components를 설치하지 않고는 다른 설정을 통해 하는 방법은 없어 보였다. 그래서 다른 개발 블로그에서 사용하던 방식을 적용해 보았지만 동작하지 않았다.

 

 역시 의심스러운 부분은 craco였다. craco를 사용할 땐 webpack에 대한 설정을 하고 싶어서 적용하다 보니 babel에 대한 적용을 할 수 있는지에 대해서는 모르고 있었다. 그렇게 여러 방법을 찾아보다 craco docs를 읽게 되었고 babel을 적용할 수 있는 예시가 있어 적용할 수 있었다.

 

 배포할 때는 굳이 이름이 보이지 않아도 된다고 생각이 되어 node의 환경 변수를 통해 빌드 모드일 때는 이름이 보이지 않도록 했다.

}