반응형
Storybook 기본 설정
react 프로젝트 생성
yarn create react-app <프로젝트명>
Storybook 설치
npx -p @storybook/cli sb init
Storybook 실행 후 설치 확인
yarn storybook
config.js 설정 변경
- 경로 : <프로젝트>/.storybook/config.js
- <프로젝트>/src/components 하위 디렉토리에서 *.stories.js 파일을 찾아 로딩하는 설정
import {configure} from '@storybook/react';
const req = require.context(
'../src/components',
true,
/\.stories\.(js|jsx)$/,
);
function loadStories() {
req.keys().forEach(filename => {
req(filename)
})
}
configure(loadStories, module);
Input.js 코드 추가
- 경로 : <프로젝트>/src/components/Input/Input.js
import React from 'react'
const Input = (props) => (
<input {...props}/>
)
export default Input;
Input.stories.js 코드 추가
- 경로 : <프로젝트>/src/components/Input/Input.stories.js
import React from 'react';
import {storiesOf} from '@storybook/react';
import {action} from '@storybook/addon-actions';
import Input from './Input';
storiesOf('Input', module)
.addDecorator((story) => <div style={{margin: '50px'}}>{story()}</div>)
.add('default', () => <Input onChange={action('changed')}/>)
.add('disabled', () => <Input disabled/>);
Storybook 실행 후 확인
yarn storybook
Storybook 배포하기
빌드하기
yarn build-storybook
빌드 결과물 배포
- 빌드 결과물 경로 : <프로젝트>/storybook-static
[이슈] storybook 실행시 아래 로그 발생
-
비정상 로그
- info @storybook/react v5.0.11 info info => Loading presets info => Loading presets info => Using default webpack setup. info => Using base config because react-scripts is not installed.
-
정상 로그
- info => Loading presets info => Loading presets info => Loading custom addons config. info => Using default webpack setup. info => Loading create-react-app config.
-
비정상 로그 발생시 webpack.config.js를 로딩하지 못하여 올바르게 작동하지 못함
- ex)
- yarn start를 통해서는 CSS Module이 올바르게 동작함
- yarn storybook에서는 CSS Module이 올바르게 동작하지 않음
- ex)
-
react-scripts 모듈을 설치하여 해결
yarn add react-scripts
참고
반응형
'Development > React' 카테고리의 다른 글
[React] i18next (2) | 2019.05.24 |
---|---|
[React] useContext (0) | 2019.05.23 |
[React] Router (0) | 2019.05.17 |
[React] CSS Module (0) | 2019.05.16 |
[React] Hooks (0) | 2019.05.15 |