22sook00 logo
SookDev
🌳

submodule → vercel 배포 이슈 해결하기

목차

 
notion image
버셀은 서브모듈을 지원하지 않는다. 서브모듈을 적용한 프로젝트를 vercel 로 배포하며 생각지 못한 이슈가 생겼다. 개인 프로젝트 할때 가장 만만하게 사용하던 배포 툴이었는데 서브모듈을 지원하지 않아 추가적인 설정이 필요했다. 구글링 할 때 자료가 많이 없기도 했고 나와있는 자료조차 조금씩 헷갈리는 부분이 있어서 생각보다 많이 헤맸다. 하지만 이제 이 방법대로 하면 절대 배포이슈 날일 없음!!!!!! 😊
 

1. token 설정

🌱 github 토큰 등록

  • Settings -> Developer settings -> Personal access tokens
  • Generate new token 선택
    • notion image
  • note 설정 (eg. vercel)
  • expiration 설정 (eg. No expiration)
    • 귀찮지 않으려면 만료일 없는것으로 설정하는게 정신건강에 좋다.
  • select scopes 설정
    • repo - Full control of private repositories
  • 토큰 복사
    • notion image
 

🌿 vercel 에 토큰 등록

  • 환경변수 세팅
    • 적용할 프로젝트 -> Settings -> Environment Variables
      • notion image
    • key : GITHUB_ACCESS_TOKEN / value : 복사한 git 토큰 값
      • notion image
  • general 세팅
    • 적용할 프로젝트 -> Settings -> general
    • Build Command 에 npm run vercel-build 입력 후 토글 override
      • notion image
 
 

2. 부모 레포지토리 설정

🌱 vercel-submodule-workaround.sh

.gitmodules 를 보면 path 와 url 을 참고하여 쉘 스크립트에 들어갈 정보를 입력한다.
이때, repo paths 부분에 url 을 그대로 넣으면 아예 액세스토큰 자체를 불러오지 못한다.
밑에서 보면
git remote add origin https://$GITHUB_ACCESS_TOKEN@$SUBMODULE_GITHUB
부분에서 이미 https:// 가 적용되어 있기 때문이다.
반드시 github.com/22sook00/next-submodule 까지만 작성해주도록 한다.

🌱 package.json

vercel-submodule-workaround.sh 이 작동하면 npm run build 를 해라!
⚠️
GITHUB_ACCESS_TOKEN 은 버셀에서 등록한 환경변수에서 가져오기 때문에 .env 에는 별도로 추가하지 않아도 된다.
 

빌드 성공!! 🎉

notion image
 
🔗 배포된 서브모듈 적용 에디터 사이트 :
🔗  배포된 서브모듈 적용 라이브 사이트 :
 

참조
🔗 vercel-private-submodule
vercel-private-submodule
beeingerUpdated Feb 11, 2024