상황
node.js 환경에서 eslint를 설치한 상태이다. 변경된 파일을 commit 하려는데 다음과 같은 오류가 떴다. eslint-plugin-react 세팅에서 react version이 detect로 설정 되어있는데 너는 리액트 패키지가 설치되어있지 않다?? 뭐 이런 말인듯ㅎ 일단 관련 코드를 찾아봤다.

참고로 이 코드는 node_modules > eslint-plugin-react > lib > util > version.js 파일에서 찾을 수 있다.
모듈이 없는 경우에 위와 같은 경고문을 띄운다. 사실 백엔드쪽을 잘 몰라서 resolve.sync 이런게 뭔지 모르겠다. 아마 리액트가 정상적으로 깔려있다면 cachedDetectedReactVersion 변수에 리액트 버전값이 들어가고 없는 경우엔 경고를 띄우고 변수값이 디폴트 버전인 999.999.999로 바뀌는것 같다... 자세히 아는 사람은 댓글을 남겨주길 바란다.(제발) 이 프로젝트에서 리액트가 필요 없기 때문에 설치하려는 노력은 안 해봤다.

해결
node_modules->eslint -> eslint-config-cryingbot->.eslintrc.js 파일에 다음과 같은 코드를 추가해줬다. 각자 쓰고 있는 eslint-config 폴더에 들어가서 .eslintrc.js 파일을 찾으면 된다. 에어비앤비 eslint 규칙을 따른다고 하면 eslint-config-airbnb 이런식으로 써있을 것이다. version: "latest" 이렇게 하는게 더 좋은 방법이라고 하는데, 나는 latest로 하면
settings: {
react: {
version: "999.999.999"
}
},
찾아보니 package.json 파일에 이 코드를 추가하는 방법도 있다.
"eslintConfig": {
"settings": {
"react": {
"version": "999.999.999"
}
}
}
참고
https://github.com/DRD4-7R/eslint-config-7r-building/issues/1
'나도 공부한다 > 삽질' 카테고리의 다른 글
[mocha] describe is not defined (0) | 2022.11.16 |
---|---|
[C++] 작은 따옴표와 큰 따옴표 차이 (0) | 2022.11.14 |
오늘의 삽질 일기 (0) | 2021.10.07 |
게임 객체를 삭제와 동시에 소리나게 만들기 (0) | 2021.10.04 |
비주얼 스튜디오 유니티 호환성 문제 드디어 해결... (0) | 2021.10.03 |