티스토리 뷰

현상

프로젝트가 한 폴더에 두개 존재하는 상황

project1 / package.json
project1 / project2 / package.json

project1은 라이브러리고, project2는 데모 폴더로 project1이 빌드된 걸 보고 그걸 임포트해서 데모를 띄우는 식. project2의 package.json 내에서 이런 식으로 가져다 씀. 밑에 react랑 react-dom도 중복된 패키지 방지용으로 https://ko.reactjs.org/warnings/invalid-hook-call-warning.html#duplicate-react 문서에 나와있는대로 해결한 것.

  "dependencies": {
    "@project1": "file:..",
    "@types/node": "^12.0.0",
    "@types/react": "file:../node_modules/react",
    "@types/react-dom": "file:../node_modules/react-dom",
  }

이런 상황에서 project2 에서 npm run start를 하려고 하니 babel-eslint 버전이 안맞는다며 에러를 발생시킨다.

The react-scripts package provided by Create React App requires a dependency:

"babel-eslint": "9.0.0"

npm ls babel-eslint 를 쳐보니

project2@0.1.0 
├─┬ @project1@0.1.0 -> ./..
│ └─┬ react-scripts-ts@4.0.8
│   ├── babel-eslint@9.0.0
│   └─┬ eslint-config-react-app@3.0.8
│     └── babel-eslint@9.0.0 deduped
└─┬ react-scripts@4.0.3
  ├── babel-eslint@10.1.0
  └─┬ eslint-config-react-app@6.0.0
    └── babel-eslint@10.1.0 

그러니까 project2에서 쓰고 있는 project1의 react-scripts-ts 에 딸려있는 babel-eslint 버전이랑, project2에서 쓰는 react-scripts에 딸려있는 babel-eslint 버전이 다른 것.

해결 방법

일단 .env 파일에 SKIP_PREFLIGHT_CHECK=true 추가하고 빌드하니 잘 됨.

Ref

https://stackoverflow.com/questions/54000294/the-react-scripts-package-provided-by-create-react-app-requires-a-dependency

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함