나는 긍정적으로 100 % 확신하지 못합니다. 몇 가지 부정적인 점이 있습니다.
종종 불안정한 타사 서버 / 엔드 포인트에 종속성을 추가하게됩니다.
일부 종속성의 저장소가 삭제되거나 이동 된 bower와 함께 발생했습니다. 그래서 새로운 개발자가 와서 내 저장소를 복제하고 bower install
액세스 할 수없는 저장소에
대한 오류를 얻습니다. 대신 타사 코드를 내 저장소에 체크인하면 문제가 사라집니다.
이것은 운영하는 서버에 보관 된 사본에서 뎁을 가져 오는 경우 OP가 제안한 것처럼 해결됩니다.
멍청한 놈들을 위해 더 열심히.
나는 명령 줄 경험이 거의없는 미술 학생들과 함께 일합니다. 그들은 Processing, arduino, Unity3D로 예술을 만들고 기술 지식이 거의 없습니다. 그들은 내가 쓴 HTML5 / JavaScript를 사용하고 싶었습니다. 정자 때문에 단계
- github에서 repo 우편 번호를 다운로드하십시오 (github의 모든 repo의 오른쪽에 있습니다 .git은 모르기 때문에)
- 노드 다운로드 및 설치 (NPM을 실행하여 bower 설치 가능)
- git 또는 msysgit을 설치하십시오 (bower가 필요하고 많은 학생들의 컴퓨터에 설치되어 있지 않기 때문에)
- 바우어 설치 (
npm install -g bower
)
bower install
(마지막으로 의존성을 얻기 위해)
파일을 github 저장소에 체크인하면 2-5 단계를 모두 삭제할 수 있습니다. 그 단계는 아마도 당신과 나에게 매우 쉬운 것처럼 들릴 것입니다. 학생들에게 그들은 매우 혼란 스러웠으며 어디에서 무엇을해야하는지에 대해 배우는 것이 좋을지 모르지만 수업 주제와 완전히 직교하여 빨리 잊혀 질 수 있는 모든 단계를 알고 싶어했습니다 .
당기면 또 다른 단계가 추가됩니다.
나는 여러 번 일을 git pull origin master
한 다음 내 코드를 테스트 bower install
하고 최신 뎁을 얻기 위해 입력해야한다는 것을 기억하는 데 5 ~ 10 분이 걸립니다 . 풀 스크립트 후크로 쉽게 해결할 수 있다고 확신합니다.
자식 분기를 더 어렵게 만듭니다.
두 가지 가지의 깊이가 다르면 문제가 생깁니다. 나는 당신이 bower install
매번 입력 할 수 있다고 가정합니다 git checkout
. 속도가 너무 큽니다.
당신의 긍정적 인 측면에서 나는 그들 각각에 대한 반대 사례가 있다고 생각합니다.
공유 모듈, 특히 버전 업그레이드를 배포하고 가져 오는 프로세스가 쉬워집니다.
대 무엇? 배포하기가 쉽지 않습니다. 20 개 대신 하나의 저장소를 당기는 것은 쉽지 않으며 실패 할 가능성이 높습니다. 위의 # 1 참조
소스 제어에서 공유 모듈을 제거하고 체크 아웃 / 체크인 속도를 높이고 단순화합니다 (라이브러리가 20 개 이상인 응용 프로그램을 사용하는 경우 이는 중요한 요소 임).
반대로 이것은 수정을 위해 다른 사람에게 의존한다는 것을 의미합니다. 당신의 뎁이 써드 파티 소스에서 뽑아 내고 버그를 수정해야한다면 패치를 적용 할 때까지 기다려야합니다. 더 나쁜 것은 아마도 원하는 버전과 패치를 가져갈 수는 없으며 프로젝트와 호환되지 않는 최신 버전을 사용해야한다는 것입니다.
저장소를 개별적으로 복제하여 문제를 해결할 수 있으며 프로젝트 뎁을 사본으로 지정합니다. 그런 다음 사본에 수정 사항을 적용하십시오. 물론 소스를 저장소에 복사하면 그렇게 할 수도 있습니다.
조직에서 어떤 타사 라이브러리가 사용되는지에 대해 더 많은 제어 또는 인식을 허용합니다.
논쟁의 여지가있는 것 같습니다. 개발자가 타사 라이브러리를 아래의 자체 폴더에 넣으면됩니다 <ProjectRoot>/3rdparty/<nameOfDep>
. 타사 라이브러리가 사용되는 것을 쉽게 볼 수 있습니다.
나는 긍정적 인 것이 없다고 말하는 것이 아닙니다. 내가 마지막으로 한 팀은 100 개 이상의 타사 뎁을 가졌다. 나는 그것이 모든 장미가 아니라고 지적하고 있습니다. 예를 들어 필요에 따라 정자를 제거해야하는지 평가하고 있습니다.