사내 git 에서 모듈 import 하다가 package.json 에서 ignore 하고 싶은게 있어서 질문드립니다.


(한승훈) #1

사내에서 여러 프로젝트 간에 공통으로 사용하게 되는 컴포넌트들을 관리하기 위해서 알아보던중

git에서 다운 받아 install 할수 있다는 것을 알게 되서 적용 하였는데 궁금증이 생겨서 질문 드립니다.

회사에서 사내망에 gitlab을 사용하고 있어서 url를

"git+http://<USERNAME>:<TOKEN>@<GITLABURL>/<PROJECTNAME>.git"

이런식으로 USERNAME , TOKEN 을 명시해줘야 돼는데

해당 정보가 git push 되는 것을 원치 않을 경우 package.json 에서 외부 파일의 정보를 읽어서 npm install 할수가 있을까요?


(이종은(Jong Lee)) #2

package.json에 인증 정보는 빠지고 순수 repository 경로만 남고 각자의 로컬 컴퓨터에서는 각자 자신 계정의 ssh 인증정보를 세팅해서 진행하는 방법을 썼습니다. 그래야 각 개발자 계정에 따라 접근 가능여부가 정해지고 관리가 명확해지니까요.
어떠한 불가피한 이유로 위에서 말씀하신 것 처럼 USERNAME과 TOKEN을 포함해야한다면 USERNAME에 해당하는 USER의 권한을 push를 허용하지 않는 구너한으로 설정하면 될 것 같습니다.


(한승훈) #3

답변 감사합니다.

https://nadafancy.com/2016/05/10/Using-private-git-repos-as-NPM-modules.html

위 내용 참고해서 ~/.ssh/config 설정 추가 했는데 안되더군요.

말씀하신거처럼 push 안되는 계정 별도로 생성해서 해야 될거 같습니다.


(InGrowth) #4

라서 안되는거에요.

git+ssh로 하셔야 로컬의 ssh 키를 사용하죠.
https://docs.npmjs.com/files/package.json#git-urls-as-dependencies