source

귀사에서 npm과 함께 사용할 개인 저장소를 호스팅할 수 있습니까?

ittop 2023. 5. 27. 11:58
반응형

귀사에서 npm과 함께 사용할 개인 저장소를 호스팅할 수 있습니까?

Npm은 Nexus/Maven과 같이 프라이빗 레포가 가능한지 궁금해하는 조직 내에서 사용하기에 좋은 플랫폼처럼 들립니다.구글에 아무것도 뜨지 않습니다 :(

https://github.com/isaacs/npmjs.org/ : npm 버전 v1.0.26에서는 패키지의 종속성으로 개인 깃 저장소 URL을 지정할 수 있습니다.json 파일.저는 그것을 사용하지 않았지만 피드백을 받고 싶습니다.다음은 당신이 해야 할 일입니다.

{
    "name": "my-app",
    "dependencies": {
        "private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
    }
}

다음 게시물은 이것에 대해 이야기합니다: 디버그 가능: 개인 npm 모듈.

저는 이것을 하는 쉬운 방법이 없다고 생각합니다.

npm 설명서를 보면 다음과 같은 가능성이 있습니다.

개인 레지스트리를 실행할 수 있습니까?

네!

가장 쉬운 방법은 카우치 데이터베이스를 복제하고 동일한(또는 유사한) 설계 문서를 사용하여 API를 구현하는 것입니다.

공식 CouchDB에서 연속 복제를 설정한 다음 내부 CouchDB를 레지스트리 구성으로 설정하면 개인 패키지 외에도 게시된 패키지를 모두 읽을 수 있으며 기본적으로 내부에서만 게시됩니다.그런 다음 전 세계가 볼 수 있도록 패키지를 게시하려면 간단히 덮어쓸 수 있습니다.--registry해당 명령에 대한 구성.

시계 블로그에 개인 npm 저장소를 만드는 방법에 대한 훌륭한 튜토리얼도 있습니다.

편집(2017-02-26):

별로 새로운 것은 아니지만, 현재 npm에 개인 패키지를 호스팅하는 유료 계획이 있습니다.

수년에 걸쳐 npm은 npm을 기반으로 구축된 거대한 프런트 엔드 에코시스템을 통해 Node.js가 아닌 많은 기업들에게도 중요한 요소가 되었습니다.회사에서 내부적으로 Java 프로젝트를 호스팅하기 위해 이미 Sonatype Nexus를 실행하고 있는 경우 내부 npm 패키지 호스팅에도 사용할 수 있습니다.

다른 옵션으로는 JFrog Artificory와 Inedo ProGet이 있지만, 저는 그것들을 사용하지 않았습니다.

이를 위해 사용하기 쉬운 npm 패키지가 있습니다.https://www.npmjs.org/package/sinopia

요약하자면, Sinopia는 제로 구성으로 설정할 수 있는 개인/캐싱 npm 저장소 서버입니다.

시노피아는 다음에 사용할 수 있습니다.

  • 개인 패키지를 공개하지 않고 공개합니다.
  • 사용되는 공용 패키지만 캐시(전체 공용 레지스트리를 복제할 필요 없음)
  • 내부적으로 생성된 수정된 버전으로 공용 패키지를 재정의합니다.

베르다치오는 내가 찾던 것이고 그것은 그 자체의 대답을 받을 가치가 있습니다;) 시노피아의 적극적으로 유지되는 포크입니다(여기서는 매우 지지받는 대답입니다).이것은 npm 패키지로서의 npm 레지스트리이며, 찾을 수 있습니다.

여기: https://github.com/verdaccio/verdaccio,
여기: https://www.verdaccio.org ,
등등에port number: 4873

PM2를 사용하여 실행

npm i -g verdaccio pm2
pm2 start --name verdaccio `which verdaccio`
pm2 save

도커를 사용하여 실행

docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio

조타 장치를 사용하여 실행

helm repo add verdaccio https://charts.verdaccio.org
helm repo update
helm install verdaccio/verdaccio

2015년 4월 14일, npm 사설 모듈이 도입되었습니다.

사설 모듈에 대한 비용을 지불할 때 다음을 수행할 수 있습니다.

  • 원하는 만큼 개인 패키지 호스팅
  • 다른 유료 사용자에게 해당 패키지에 대한 읽기 액세스 또는 읽기/쓰기 액세스 허용
  • 다른 유료 사용자가 읽기 권한을 부여한 패키지 설치 및 사용
  • 다른 유료 사용자가 사용자에게 쓰기 액세스 권한을 부여한 모든 패키지에서 공동 작업

물론 무료는 아닙니다. 현재 사용자당 한 달에 7달러입니다.

그리고 그것은 여전히 꽤 새로운 서비스입니다.예를 들어 조직 계정에 대한 지원이 누락되었습니다(2015년 6월 기준).

현재 개인 패키지는 개인 사용자만 사용할 수 있지만 조직 계정에 대한 지원이 곧 제공될 예정입니다.그 동안 조직에 대한 사용자를 자유롭게 생성할 수 있으며, 지원이 있을 때 조직으로 업그레이드할 수 있습니다.

따라서 완벽하지는 않지만 개인 패키지를 유지 관리하기 위한 공식적인 npm 솔루션이며, 그 자체가 언급할 가치가 있습니다.

갱신하다

Npm Private Packages는 이제 개별 사용자와 조직 모두를 위한 계획으로 사용할 수 있습니다.

  • 공개 및 개인 패키지 수 제한 없음
  • 7달러/월급/월급
  • 조직 이름을 기준으로 하나의 범위 이름 포함
  • @org-name/foo에 대한 액세스 게시 및 제어

(Disclaimer: npm, Inc.어떤 식으로든 원격으로 제휴하지도 않음)

개인 npm 레지스트리를 지원하는 리포지토리 관리자:

이 스레드는 업데이트가 필요한 것 같습니다.사용 가능한 npm 레지스트리 중 하나를 보면 매우 무겁고 카우치DB가 필요합니다.Gemfurry와 다른 사람들은 당신이 공공 저장소에서 벗어나야 합니다.그림자 같은 npm 중 일부는 최근에 저지른 범죄가 없습니다.

레지를 찾았어요그것은 좋은 커밋 활동을 가지고 있고, 설치와 사용이 매우 쉬우며, 꽤 좋은 지역사회 지원을 가지고 있습니다.매우 가볍고 카우치DB 등을 다룰 필요가 없습니다.

제가 질문을 잘 이해하지 못한다면 용서해 주십시오. 하지만 제 대답은 이렇습니다.

개인 npm 모듈을 만들고 npm의 일반 명령을 사용하여 설치할 수 있습니다.대부분의 node.js 사용자는 git를 자신의 저장소로 사용하지만, 자신에게 맞는 저장소를 사용할 수 있습니다.

  1. 당신의 프로젝트에서는 NPM 패키지의 골격이 필요할 것입니다.대부분의 노드 모듈에는 패키지(NPM)와 통합되는 방법을 확인할 수 있는 Git 저장소가 있습니다.json 파일, 나는 이것의 일부라고 생각하고 NPM의 웹사이트에서 npm 패키지를 만드는 방법을 보여줍니다.)
  2. Make와 유사한 것을 사용하여 패키지를 인터넷이나 네트워크에서 사용할 수 있도록 만들고 tarball로 만들어 npm 설치 다운로드를 준비합니다.
  3. 패키지가 만들어지면 다음을 사용합니다.

    npm 설치 *tarball_url*

이것이 제가 아는 가장 쉬운 방법입니다 - Gemfury 개인 npm 레지스트리를 사용하여 클라우드에서 호스팅합니다.

무료이며 Github 계정으로 로그인할 수 있습니다.사용자 자신의 데이터베이스를 설정하는 것에 비해 시간을 많이 절약할 수 있습니다.

Sonatype Nexus를 사용하고 있으며 버전은 Nexus Repository Manager입니다.OSS 3.6.1-02.그리고 NPM 개인 저장소를 지원하고 패키지를 캐시한다고 확신합니다.

여기에 이미지 설명 입력

파티에 조금 늦었지만 NodeJS(11월 14일 현재)는 기업 NPM 저장소를 지원합니다. 자세한 내용은 공식 사이트에서 확인할 수 있습니다.

대충 보면 NPME는 NPM 저장소의 폴스루 미러링을 허용하는 것으로 보입니다. 즉, 내부에서 패키지를 찾을 수 없는 경우 실제 NPM 저장소에서 패키지를 검색합니다.매우 유용할 것 같습니다!

npm Enterprise는 npm 및 공용 npm 레지스트리를 관리하는 팀에서 조직 내에서 JavaScript 모듈을 안전하게 공유 및 배포하기 위한 사내 솔루션입니다.다음이 필요한 팀을 위해 설계되었습니다.

프라이빗 모듈의 손쉬운 내부 공유 개발 및 배포 워크플로우 제어 강화 오픈 소스 모듈의 법적 요구 사항 준수와 관련한 보안 강화 코드 온프레미스 npm은 프라이빗 npm입니다.

npmE는 이미 사용하고 있는 것과 동일한 표준 npm 클라이언트에서 작동하는 npm 레지스트리이지만 현재 노드를 적극적으로 채택하고 있는 대규모 조직에 필요한 기능을 제공합니다.이것은 npm 오픈 소스 프로젝트의 스폰서이자 공공 npm 레지스트리의 호스트인 npm, Inc.에 의해 구축되었습니다.

안타깝게도, 그것은 무료가 아닙니다.평가판을 사용할 수 있지만 상업용 소프트웨어입니다.이것은 솔로 개발자들에게는 그리 대단한 부분은 아니지만, 솔로 개발자라면 깃허브가 있습니다 :-)

게시물은 개인 레지스트리를 설정하는 방법에 대해 설명합니다.

  • couchdb가 시스템에 설치되어 있는지 확인합니다.
  • 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 

파티에 조금 늦을 수도 있지만, 이 두 가지 중 어느 것이든 당신을 위해 일할 수 있습니다.

  1. http://www.jfrog.com/confluence/display/RTF/Npm+Repositories
  2. https://github.com/krakenjs/kappa

분산 방식을 선호하는 경우 Aragon Package Manager를 사용할 수도 있습니다.

  1. APM 사용: http://blog.aragon.one/using-apm-to-replace-npm 및 기타 중앙 집중식 패키지 관리자/
  2. APM 배포: https://github.com/aragon/aragonOS#apm

AWS Code Artifict 서비스를 목록에 추가하고 싶은데, 귀사에서도 AWS git repos를 사용하고 있다면 좋은 접근 방식으로 보입니다.

https://aws.amazon.com/blogs/devops/publishing-private-npm-packages-aws-codeartifact/

언급URL : https://stackoverflow.com/questions/7575627/can-you-host-a-private-repository-for-your-organization-to-use-with-npm

반응형