해당 게시글은 에러를 수정하거나 개발이 진행될 때마다 수정됩니다.
환경 세팅이 되어있는 프로젝트 위에서 개발을 하다보니 문득 첫 세팅은 어떻게 하는 걸까 궁금해졌습니다.
그래서 공부 용으로 Next.js
+ Relay
+ ReScript
+ SSR
을 해봅니다.
코드는 여기서 확인할 수 있습니다.
🍔 Next.js + ReScript 세팅
create next app으로 Next.js
프로젝트 생성
src
폴더 내로 필요 파일들 이동
rescript, @rescript/react 설치
bsconfig.json
생성
pageExtensions에 bs.js
추가
rescript 빌드 명령어 추가
Next.js 바인딩
🍟 Next.js + ReScript에 Relay 세팅
디펜던시 설치
bsconfig.json
에 설정
relay.config.js
생성
relay
컴파일 명령어 추가
테스트용 로컬 graphql 서버 실행
테스트 용이므로 수동으로 schema.graphql 생성
bs-fetch
설치 및 설정
RelayEnv.res
작성
_app.js
삭제 후 App.res
작성
동시 실행 설정
🥁 실행해보기
query 실행하기 위한 코드 작성
yarn dev
로 실행
🥹 에러 1 - 해결
yarn dev
로 실행 후 에러 발생 🥲
rescript-relay 디스코드에 질문해서 해결!
Next.js
에서 es6 사용 불가능 당연함 서버사이드임.
😢 에러 2 - 해결
commonjs로 바꾸고, 빌드하니 알 수 없는 에러가 뜸.
res:clean
후에 다시 빌드하니 에러 사라짐. 해결!
😭 에러 3 - 해결 중
hydrating 에러 Hi~
트위터 및 GraphQL 연구소 디스코드의
도움으로 relay-data-driven-dependencies를 추천받았음.
💧 에러 4 - 해결 중
에러 3과 연관되어있음. React.Suspense
를 제거하니 잘 작동함.
근데.. 왜?
그리고 처음 진입할 때 쿼리 2번 호출됨. 왜...?
🌊 에러 5 - 해결 중
getServerSideProps
에서 query 어떻게 호출하는 걸까?
밑은 안되는 코드. 에러도 없고, 작동도 하는데 undefined
반환함.
rescript-relay
디스코드에서 발췌.
이거 되는 걸까...? 🥹
rescript-relay
디스코드에서 나눈 대화.
이거 내가 할 수 있는 걸까? 🥹
해당 게시글은 에러를 수정하거나 개발이 진행될 때마다 수정됩니다.
Refer