오류
Clone 한 Node.js 버전 제한과 기존 사용하던 Node.js의 버전 차이로 인해 오류가 발생하였다.
처음 package.json을 확인했을 때 버전을 제한하는 engines 객체에서는 다음과 같았다.
그래서 npm 은 6.0.0 이상, node는 14.0.0 이상이면 될 것이라는 생각을 했고 기존 사용하던 내 Node.js의 버전은 17.8.0, npm 버전은 8.5.5 였기 때문에 오류가 안 날 것이라는 예상을 했었다.
하지만 콘솔 창에서 요구하는 node의 버전은 14.15.0 또는 16.10.0 또는 18.0.0 이상을 요구했고 노드의 버전을 14.15.0으로 변경해주니 정상적으로 npm install을 실행할 수 있었다.
- 노드 원하는 버전 설치 방법과 설치한 버전 확인하는 명령어
nvm install 14.15.0 // 원하는 노드 버전 설치
node --version // 노드 버전확인
정확한 이유는 모르겠지만 이유를 알고 싶어서 찾아보니 나와 같은 현상을 겪은 사례를 Stack Overflow에서 확인할 수 있었다.
https://stackoverflow.com/questions/70269056/cause-of-npm-warn-ebadengine
Stack Overflow에서는 engines를 수정하거나 콘솔에서 요구하는 버전으로 변환해주면 된다고 한다.
아무래도 내가 사용하던 node.js의 버전은 clone 한 코드의 기능을 원활히 수행할 수 없는 version이기에 에러가 난듯하다.
추가로 package.json의 engines의 기능 설명을 끝으로 오늘의 포스팅을 마친다.
- engines
동작 가능한 node의 버전을 지정 할 수 있다. 사용자가 engin-strict config flag를 설정하지 않으면 해당 사항은 강제 사항이 아닌 조언용으로 사용된다.
예시
"engineStrict": true,
"engines": {
"npm": ">=6.0.0",
"node": ">=14.0.0"
}
'프로그래밍 > 트러블슈팅(trouble shooting)' 카테고리의 다른 글
[JavaScript] Uncaught RangeError: Maximum call stack size exceeded (0) | 2023.01.20 |
---|---|
[React] A Component is chainging an uncontrolled 에러 (0) | 2022.12.01 |
[three.js] setSize() 오류, 생성자 함수 오류 (0) | 2022.10.20 |
[Git] git MERGE_HEAD exists 문제 해결하기 (merge 취소하기) (0) | 2022.07.07 |
[React] Firebase 연결시 API key 오류 (0) | 2022.07.05 |