CRACO
eject 명령 없이 CRA확장
CRACO(Create React App Configuration Override)는 Create React App 구성을 덮어쓸 수 있도록 도와줍니다.

CRA eject 명령을 사용하지 않고도 프로젝트 루트 위치에 craco.config.js 파일을 추가한 다음 ESLint, Babel, PostCSS, Sass 구성 등을 사용자 입맛에 맞게 수정할 수 있어 유용합니다.
패키지 설치
@craco/craco 패키지를 프로젝트에 설치합니다.
package.json
NPM 스크립트 명령이 CRACO를 사용하도록 start, build, test 명령을 변경합니다.
craco.config.js
CRACO 구성 파일을 프로젝트 루트 위치에 생성합니다.
CRACO 구성
craco.config.js 파일 구성은 다음과 같은 구조로 작성합니다. 모든 내용을 작성할 필요는 없고 덮어쓰기 하고 싶은 구성만 추가하면 됩니다.
[플러그인] sass sourcemap
Sass 소스맵을 활성화 하려면 CRACO의 overrideWebpackConfig 함수를 사용해 Webpack 구성을 덮어써야 합니다. Sass 소스맵을 활성화 하는 CRACO 플러그인 파일을 아래와 같이 만든 후 작성합니다.
craco.config.js 파일에 sass-sourcemap 플러그인 파일을 불러와 CRACO 플러그인 아이템으로 설정합니다.
[플러그인] alias
craco-alias 플러그인은 Webpack, Jest의 별칭을 등록하는데 유용합니다. 플러그인을 사용하려면 설치합니다.
craco.config.js 파일에 craco-alias 플러그인 파일을 불러와 CRACO 플러그인 아이템으로 설정합니다.
[플러그인] favicons
craco-favicons 플러그인은 favicon-webpack-plugin 플러그인을 활용하여 파비콘(favicons)을 자동 생성하므로 유용합니다. 플러그인을 사용하려면 설치합니다.
craco.config.js 파일에 craco-favicons 플러그인 파일을 불러와 CRACO 플러그인 아이템으로 설정합니다.
[플러그인] image optimizer
craco-image-optimizer-plugin 플러그인은 image-webapck-loader 플러그인을 활용하여 모든 이미지를 최적화 처리합니다. 플러그인을 사용하려면 설치합니다.
craco.config.js 파일에 플러그인 파일을 불러와 CRACO 플러그인 아이템으로 설정합니다.
커스텀 템플릿
필요하다면 CRACO 설정이 반영된 커스텀 템플릿을 다운로드 받아 사용할 수 있습니다.
Last updated
Was this helpful?