Npm은 조직 내에서 사용하기에 훌륭한 플랫폼 인 것 같습니다. Nexus / Maven과 같이 개인 저장소가 가능한지 궁금합니다. Google에 아무것도 나타나지 않습니다 :(
Npm은 조직 내에서 사용하기에 훌륭한 플랫폼 인 것 같습니다. Nexus / Maven과 같이 개인 저장소가 가능한지 궁금합니다. Google에 아무것도 나타나지 않습니다 :(
답변:
나는 이것을 할 수있는 쉬운 방법이 없다고 생각합니다.
고궁 박물원 문서에서 보면 그것이 가능하다는 것을 우리에게 알려줍니다 :
개인 레지스트리를 실행할 수 있습니까?
예!
가장 쉬운 방법은 소파 데이터베이스를 복제하고 동일한 (또는 유사한) 디자인 문서를 사용하여 API를 구현하는 것입니다.
공식 CouchDB에서 연속 복제를 설정 한 다음 내부 CouchDB를 레지스트리 구성으로 설정하면 비공개 패키지 외에 게시 된 패키지를 읽을 수 있으며 기본적으로 내부적으로 만 게시됩니다. 전 세계에 볼 수있는 패키지를 게시하려면
--registry
해당 명령에 대한 구성을 재정의하면 됩니다.
시계 블로그에서 개인 npm 저장소를 만드는 방법 에 대한 훌륭한 자습서도 있습니다 .
편집 (2017-02-26) :
실제로 새로운 것은 아니지만 이제 NPM에서 개인 패키지를 호스팅 할 유료 요금제 가 있습니다.
수년에 걸쳐 NPM은 NPM을 기반으로 구축 된 거대한 프론트 엔드 생태계를 통해 Node.js가 아닌 많은 회사의 요소가되었습니다. 귀사에서 내부적으로 Java 프로젝트를 호스팅하기 위해 Sonatype Nexus 를 실행중인 경우 내부 NPM 패키지를 호스팅하는 데 사용할 수도 있습니다.
다른 옵션으로는 JFrog Artifactory 및 Inedo ProGet 이 있지만 사용하지는 않았습니다.
https://github.com/isaacs/npmjs.org/ : npm 버전 v1.0.26에서는 개인 git 저장소 URL을 package.json 파일의 종속성으로 지정할 수 있습니다. 나는 그것을 사용하지 않았지만 피드백을 좋아할 것입니다. 해야 할 일은 다음과 같습니다.
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
다음 포스트는 이것에 대해 이야기합니다 : 디버깅 가능 : 개인 npm 모듈
이를 위해 npm 패키지를 쉽게 사용할 수 있습니다. https://www.npmjs.org/package/sinopia
간단히 말해, Sinopia는 개인 / 캐싱 npm 리포지토리 서버로 구성없이 구성 할 수 있습니다.
Sinopia를 사용하여 다음을 수행 할 수 있습니다.
Verdaccio는 내가 찾던하고 그것이 자신의 답변을받을 권리가 무엇입니까) 그것은 Sinopia의 적극적으로 유지 포크 (매우 upvoted 대답은 여기에 ). 그것은이다 NPM 패키지와 NPM 레지스트리 및 찾을 수 있습니다
여기 : https://github.com/verdaccio/verdaccio ,
여기 : https://www.verdaccio.org ,
여기 : pnpm i -g verdaccio
또는
여기 :docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
2015 년 4 월 14 일에 npm 개인 모듈 이 도입되었습니다.
개인 모듈에 대한 비용을 지불하면 다음을 수행 할 수 있습니다.
- 원하는만큼 개인 패키지를 호스팅
- 다른 유료 사용자에게 해당 패키지에 대한 읽기 권한 또는 읽기 / 쓰기 권한 부여
- 다른 유료 사용자가 귀하에게 읽기 권한을 부여한 모든 패키지를 설치하고 사용하십시오.
- 다른 유료 사용자가 귀하에게 쓰기 권한을 부여한 모든 패키지에 대해 공동 작업
물론, 그것은 무료입니다-현재 사용자 당 한 달에 7 $.
그리고 그것은 여전히 새로운 서비스입니다. 예를 들어 조직 계정에 대한 지원이 누락되었습니다 (2015 년 6 월 기준).
현재 개인 패키지는 개별 사용자 만 사용할 수 있지만 조직 계정에 대한 지원은 곧 제공 될 예정입니다. 그 동안 조직의 사용자를 자유롭게 작성하고 지원이있을 때 조직으로 업그레이드 할 수 있습니다.
따라서 완벽하지는 않지만 개인 패키지를 유지 관리 하는 공식 npm 솔루션이므로 언급 할 가치가 있습니다.
최신 정보
개별 사용자와 조직 모두를위한 Npm 개인 패키지 가 제공됩니다 .
- 무제한 공개 및 개인 패키지
- 월 $ 7 / 개발자
- 조직 이름을 기반으로 하나의 범위 이름을 포함합니다.
- @ org-name / foo에 대한 액세스 공개 및 제어
(면책 조항 : npm, Inc. 와 원격으로 제휴하지 않아도됩니다 )
귀하의 질문을 잘 이해하지 못하면 저를 용서하십시오. 그러나 여기 내 대답이 있습니다.
개인 npm 모듈을 생성하고 npm의 일반 명령을 사용하여 설치할 수 있습니다. 대부분의 node.js 사용자는 git를 리포지토리로 사용하지만 원하는 리포지토리를 사용할 수 있습니다.
패키지가 만들어지면
npm install * tarball_url *
파티에 조금 늦었지만 NodeJS (~ 11 월 14 일 현재)는 회사 NPM 저장소를 지원합니다 . 공식 사이트 에서 자세한 내용을 확인할 수 있습니다 .
한 눈에보기에 npmE는 NPM 리포지토리의 폴링 스루 미러링을 허용하는 것으로 보입니다. 즉, 내부 NPM 리포지토리에서 패키지를 찾을 수없는 경우 실제 NPM 리포지토리 에서 패키지를 찾습니다. 매우 유용한 것 같습니다!
npm Enterprise는 npm 및 공개 npm 레지스트리를 유지 관리하는 팀에서 조직 내 JavaScript 모듈을 안전하게 공유 및 배포하기위한 온-프레미스 솔루션입니다. 다음이 필요한 팀을 위해 설계되었습니다.
내부 모듈을 쉽게 공유하고 개발 및 배포 워크 플로를보다 효율적으로 제어합니다. 오픈 소스 모듈을 법적 요구 사항을 준수하여 온-프레미스 npm을 호스팅하기위한 배포와 관련하여보다 강력한 보안을 제공합니다.
npmE는 이미 사용중인 것과 동일한 표준 npm 클라이언트와 작동하는 npm 레지스트리이지만, 현재 노드를 적극적으로 채택하는 대규모 조직에 필요한 기능을 제공합니다. npm 오픈 소스 프로젝트의 스폰서이자 공개 npm 레지스트리의 호스트 인 npm, Inc.에서 빌드했습니다.
불행히도 무료가 아닙니다. 시험판을받을 수 있지만 상용 소프트웨어입니다. 솔로 개발자에게는 그리 좋지 않지만 솔로 개발자라면 GitHub가 있습니다 :-)
이 게시물 은 개인 레지스트리를 설정하는 방법에 대해 설명합니다
npmjs.org를 복제하면 다음 명령을 사용하십시오.
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"
참고가 "continuous":true
이 CouchDB를의 _changes API를 활용하고이 API가 통지 될 때 새로운 변화를 가져옵니다 명령에.
이러한 복제를 중지하려면을 쉽게 추가 할 수 있습니다 "cancel":true
. 그런 다음 스크립트는
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true, "cancel":true}' -H "Content-Type: application/json"
그런 다음에 갈 npmjs.org 추가 정보 NPM을 (확인 설치 nodejs
및 git
설치). 타격은 모든 단계입니다
git clone git://github.com/isaacs/npmjs.org.git
cd npmjs.org
sudo npm install -g couchapp
npm install couchapp
npm install semver
couchapp push registry/app.js http://localhost:5984/registry
couchapp push www/app.js http://localhost:5984/registry
나는 파티에 조금 늦을 수도 있지만이 두 가지 중 하나가 당신을 위해 일할 수 있습니다.
분산 방식을 선호하는 경우 Aragon Package Manager를 사용할 수도 있습니다.