-
[Storybook] Storybook + Twin.macro 환경 설정Studying/React 2023. 7. 1. 23:28
문제 발생
Storybook과 Twin.macro를 함께 사용하던 중, className에 작성한 tw 클래스를 Storybook이 인식하지 못 하는 문제가 발생했습니다.
원인
Storybook과 Twin.macro 호환 문제는 은근 흔한 경우였습니다.
저의 경우 tailwind / Storybook의 설정 파일을 제대로 작성하지 않은 문제였습니다.
Storybook은 Webpack 기반 프레임워크이기 때문에 별도로 Babel을 사용하도록 설정해야합니다.
해결 방법
우선 아래 코드로 두 개 라이브러리를 설치합니다.
npx sb init --builder webpack5 npm i -D @storybook/cli@next @emotion/babel-plugin-jsx-pragmatic @babel/plugin-transform-react-jsx
그 다음 Storybook 환경 파일에 들어가 babel을 연결합니다.
const path = require('path'); const config: StorybookConfig = { ... // babel 설정 커스터마이징 babel: async (config) => ({ ...config, presets: [["@nrwl/react/babel"]], plugins: [ 'babel-plugin-macros', [ '@emotion/babel-plugin-jsx-pragmatic', { export: 'jsx', import: '__cssprop', module: '@emotion/react', }, ], [ '@babel/plugin-transform-react-jsx', { pragma: '__cssprop', }, 'emotion-css-prop', ], ], }), }; export default config;
'Studying > React' 카테고리의 다른 글
[Custom Hook] return하는 데이터 타입이 전부 유니온으로 합쳐지는 경우 (0) 2023.07.09 API 요청 코드 분리하기(일반 함수 vs 커스텀 훅) (0) 2023.07.06 twin + styled 동적 할당 시 tw 사용이 불가능한 이유 (0) 2023.07.01 Styled-Component에서는 id props를 사용할 수 없나요? (0) 2023.06.27 디자인 시스템을 기반으로 Storybook을 작성해보자 (0) 2023.05.24