Github Action에 AWS S3 배포를 구축하면서 두가지의 에러를 마주쳤다...
역시 안마주치길 바랬지만...ㅎ 피할 수 없다면 즐겨라
끝내 해결해서 초록빛을 보았다 😎 나의 에러 해결방법을 소개하겠습니다.
역시 한번에 될리가 없지.....뭐가 문제니ㅠㅠ
react-script를 찾을 수가 없다는 에러다...왜? why?
이런 바보... npm install을 하지 않아서 package.json내의 파일들을 다운로드 하지 못해 react-script를 알지 못하는거였다.
workflow에 run:npm install 추가해주면 된다 😎
그러나 찾아보니 npm install 대신 npm ci
를 추천해주더라.
빌드 시에 package-lock.json을 수정하지 않고 정확한 버전의 패키지들을 설치해 node_modules에 적재하기 때문에 버전이 동일하다는 이유에서다!
npm ci로 바꾸기 전 npm install을 추가했음에도 불구하고 에러가 났다..
@testing-library/react-hooks에서 해당 @types/react를 찾을 수 없다는거 였는데 package-lock.json을 보니 16, 17버전 의존성만 있고 18이 없었다..!!!
공식 github을 가서 봤더니 Readme에 React 18에서는 @testing-library/react에서 한번에 지원하고 있으니 react-hooks는 Uninstall해도 된다고 나와있었다.(이것이 Readme의 중요성인가..)
삭제하고 다시 Install하니 정상적으로 되었다 😊
이젠 정말 다 된줄 알았어...ㅎ
협업을 위해 설정한 eslint룰 중에 warn으로 지정해준 것들 때문에 build가 fail난다..
어차피 우리는 eslint error로 지정해둔 규칙들 중 하나라도 어기면 push를 못하게하는 husky를 지정해놨기때문에 여기서는 eslint를 무시하도록 하기로 했다.
CI가 false일 때 npm run build를 해주게끔 workflow를 수정해주면 된다!
흠 근데 env에 CI=false로 하면 안되고 npm run build 옆에 지정해주어야 된다...왜일까