파트 3: React-App-Rewired로 템플릿 설정하기
우리는 무엇을 해결하고 싶습니까?
EJECT 알아보기
우리가 react-app-rewired를 설정하는 방법을 이해하기 전에 우리는 해결하려는 것이 무엇인지 이해해야 하며 유명한 배출에 도달합니다.
create-react-app은 완전한 반응 프로젝트를 준비하는 데 필요한 모든 종속성을 구성하고 추상화하는 npm(Node Package Manager) 라이선스 패키지입니다. 이를 위해 그는 내부적으로 다음과 같은 몇 가지 사항을 설정합니다.
이러한 모든 설정은 create-react-app 프로젝트 내에서 암시적이고 추상화됩니다. 발생하는 실제 문제는 많은 개발자가 무엇보다도 jest 변수 변경, babel 경로 변경과 같은 프로젝트 내 설정을 변경해야 한다는 것입니다.
이를 알면 create-react-app에는 emit이라는 구성이 있으며 그 안에 추상화된 구성을 제거하고 webpack, babel 및 jest의 구성 파일을 볼 수 있습니다.
그리고 EJECT는 왜 안되나요?
create-react-app은 제거 옵션을 허용하지만 많은 개발자는 많은 파일로 프로젝트를 더럽히는 것 외에도 create-react-app이 제공하는 추상화를 깨뜨리기 때문에 이 기능을 즐기지 않습니다. 이것이 react-app-rewired가 나타나는 방식입니다. 이를 통해 이러한 설정을 덮어쓸 수 있으므로 추상화된 구조를 깨지 않고 액세스할 수 있습니다.
이 이론은 복잡한 이론이므로 아래에 의심을 남겨주세요 :D
react-app-rewired 구성
패키지 설치
먼저 아래 명령어로 패키지를 설치하자.
yarn add react-app-rewired -D
스크립트 구성
react-app-rewired의 작동은 매우 간단합니다. 프로젝트에서 작동하게 하려면 아래와 같이 package.json에 액세스하고 스크립트(EJECT 제외)를 변경하여 react-scripts를 react-app-rewired로 바꾸십시오.
//package.json
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
},
재정의 파일 구성
결론적으로 구성 파일이 필요합니다. 다른 패키지 중에서 Eslint, Jest, Typescript와 마찬가지로 react-app-rewired가 제대로 작동하려면 구성 파일이 필요합니다. config-overrides.js라고 해야 하며 덮어쓸 설정을 내보내야 합니다. 아래 예를 참조하십시오.
// config-overrides.js
module.exports = {
webpack: function (config, env) {
return config;
},
jest: function (config) {
return config;
},
devServer: function (configFunction) {
return function (proxy, allowedHost) {
return config;
};
},
paths: function (paths, env) {
return paths;
},
}
이 파일 내에서 다양한 웹팩 모듈 및 jest와 같은 통합 패키지에 대한 설정을 재정의할 수 있습니다.
최종 구조
최종 템플릿 구조가 어떻게 보이는지 확인하십시오.
Here 목적에 따라 구성 변경을 수행하기 위해 지식인 과정을 수강할 수 있습니다.
이상입니다. 읽고 템플릿에 통합할 수 있는 다른 항목에 대한 제안을 보내주셔서 다시 한 번 감사드립니다. :디
Reference
이 문제에 관하여(파트 3: React-App-Rewired로 템플릿 설정하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aryclenio/part-3-setting-up-a-template-with-react-app-rewired-3e9j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)