일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 와이브로
- docker
- .net
- 크래시로그
- EUC-KR
- 데이터 전달
- php
- Antialiasing
- ClickOnce
- 한 번만 실행
- MFC
- C/C++
- plcrashreporter
- 자바스크립트
- self-signed ssl
- crashlog
- JavaScript
- Font
- API
- VS2008
- C#
- phpmailer
- 블루투스 헤드셋
- 설치제거
- PDA
- net
- protobuf-c
- 기념일관리
- GDI
- M8200
- Today
- Total
~☆~ 우하하!!~ 개발블로그
React 프로젝트 생성 오류 (Trouble Shooting) 본문
https://iwoohaha.tistory.com/312 에서 알아본 것과 같이 React 프로젝트를 개발할 환경 구성을 모두 완료
NVM -> Node.js (npm, npx)
하였다면, npx 를 이용하여 React 프로젝트를 생성할 수 있는데,
npx create-react-app <projectname>
위 명령어를 실행시켰을 때 아래와 같이 오류가 발생할 수 있다.
npx create-react-app reactdiary
Creating a new React app in /Users/dbfis/_MyProject/woohahaapps.com/reactdiary.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts with cra-template...
added 1315 packages in 35s
261 packages are looking for funding
run `npm fund` for details
Installing template dependencies using npm...
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: reactdiary@0.1.0
npm error Found: react@19.0.0
npm error node_modules/react
npm error react@"^19.0.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer react@"^18.0.0" from @testing-library/react@13.4.0
npm error node_modules/@testing-library/react
npm error @testing-library/react@"^13.0.0" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /Users/dbfis/.npm/_logs/2024-12-09T01_59_07_351Z-eresolve-report.txt
npm error A complete log of this run can be found in: /Users/dbfis/.npm/_logs/2024-12-09T01_59_07_351Z-debug-0.log
`npm install --no-audit --save @testing-library/jest-dom@^5.14.1 @testing-library/react@^13.0.0 @testing-library/user-event@^13.2.1 web-vitals@^2.1.0` failed
위 오류 내용은 React 프로젝트 이름으로 reactdiary 를 지정하고 있는데, reactdiary 디렉토리에는 package.json 파일이 생성되어 있을 것이다.
이 파일의 내용을 열어보면
{
"name": "reactdiary",
"version": "0.1.0",
"private": true,
"dependencies": {
"cra-template": "1.2.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-scripts": "5.0.1"
},
...
과 같이 react 버전이 19.0.0, react-dom 버전이 ^19.0.0, react-scripts 버전이 5.0.1 로 지정되어 있다.
설치된 react 버전이 19.0.0 인데, 의존성 관계에 있는 다른 패키지에서 안정화된 React 18 버전이 요구된다면 위와 같이 충돌이 발생할 수 있다. https://react.dev/versions 에서 확인할 수 있는 최신의 React Version 은 19.0 인데, 2024년 12월에 발표된 것으로 아직 안정적이라고 볼 수 없으므로 2024년 4월에 릴리즈된 18.3.1 버전을 설치하는 것이 권장되므로 아래와 같이 18 버전으로 변경해줄 수 있다.
우선 React 프로젝트 디렉토리로 이동하여 설치되어 있는 react 버전을 확인한다.
cd reactdiary
npm list react
npm install 명령어로 18 버전의 react 와 react-dom 을 설치한다.
npm install react@18 react-dom@18
package.json 파일의 내용을 확인하거나 npm list react 명령을 통해서 react 버전을 확인할 수 있다.
이 상태에서 npm start 명령을 이용하여 React 프로젝트를 실행시키면 터미널에는 아래와 같은 오류메시지가 표시되고
웹브라우저에 표시된 페이지에도 아래와 같이 에러 메시지가 표시된다.
src/reportWebVitals.js 파일을 열어보면
const reportWebVitals = onPerfEntry => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;
3번째 라인에서 import('web-vitals') 가 보이는데, node_modules 디렉토리 아래에 web-vitals 디렉토리가 없는 것도 확인할 수 있다.
아래 스크린샷은 react 19 버전이 발표되기 전에 생성한 react 프로젝트의 node_modules 디렉토리에 web-vitals 패키지가 존재하는 모습이다.
이 오류를 수정하려면 npm 을 이용하여 web-vitals 패키지를 설치하면 된다.
npm install web-vitals
web-vitals 패키지가 설치되고 나면 node_modules 아래에 web-vitals 디렉토리가 생성된 것이 보이게 되고, React 프로젝트를 다시 실행시키면 에러없이 실행되는 것을 확인할 수 있게 된다.
'React' 카테고리의 다른 글
React diary - jwt 로그인하기 - React Context (0) | 2024.12.10 |
---|---|
React diary - 로그인 페이지로 이동하자 - 라우터 (0) | 2024.12.09 |
React - 컴포넌트에 값 저장하기 (0) | 2024.11.12 |
React - 컴포넌트 이벤트 핸들러 함수 추가하기 (0) | 2024.11.12 |
React 프로젝트 수정 (처음) (0) | 2024.11.11 |