내 경우는 실수로 client 밖 경로에 node_modules폴더를 설치해 stomp.js의 모듈을 그곳에서 가져다 쓰고 있었다.
client .gitignore안에는 node_modules가 포함 되어 있었지만, client 밖에서는 없었기에 당연히 push가 되고 있었던 상황...
라고 굳이 안해도 될 실험을 해보고 싶었다.
왜냐면..이렇게 해서 다른 곳에서 오류가 날지 안날지 궁금하니까 ^_^...
그래서 실험해본 결과는! 음! node_modules를 repository에 올라가지 않게 되었다!
그런데 문제는 우리 repository가 github로 CI/CD를 돌리고 있다는 거였다...
client폴더안의 workflows에서 npm i로 배포후 상황을 처리 하고 있었는데, 이렇게 되면 설치한 모듈이 배포 환경에서 정상적으로 작동이 안될것은 불보듯 뻔한 일..
그래서 아무튼 client밖에 있는 node_modules를 client안으로 합치고, (다른 프로젝트는 이 경우에 상황에 따라서 잘 대처하기 바란다..client가 아닌 폴더에서 모듈을 사용할 수도 있는 경우나, 안에 있는 패키지가 너무 많아서 합치게 되면 오류가 나는 상황이 벌어질수도 있다.. 나는 애초에 client밖의 모듈에서는 종속성 패키지가 몇 개 없었다)
원격 저장소의 node_modules를 삭제하기 위한 깃코드는 아래와 같다.
git rm -r --cached node_modules
git commit -m "노드 모듈 폴더 삭제"
git push origin 자기브랜치
이렇게 해피엔딩이 되었다 ^__^
깔 -- 끔
(아 다시 보니까 폴더 밖에 있는 파일들도 삭제해야겠다 ,,,)
++ 번외 ) 오늘 궁금해서 찾아본 것
.gitignore안에 nodemodules 설정할때,
1./node_modules
2.node_modules/
가 있는데, 두 개의 차이점은
1번은 루트 디렉토리에 있는 node_modules폴더만 무시,
2번은 프로젝트 안에 있는 모든 디렉토리의 node_modules를 무시한다.