programing

내 레지스트리 없이 개인 NPM 모듈을 설치하는 방법은 무엇입니까?

i4 2023. 5. 11. 21:05
반응형

내 레지스트리 없이 개인 NPM 모듈을 설치하는 방법은 무엇입니까?

공유 코드를 가져와서 NPM 모듈에 넣었는데, 이 모듈은 중앙 레지스트리에 업로드하고 싶지 않습니다.문제는 다른 프로젝트에서 어떻게 설치하느냐는 것입니다.

명백한 방법은 아마도 나만의 NPM 레지스트리를 설정하는 것일 것입니다. 하지만 문서에 따르면, 그것은 많은 번거로움을 수반합니다.

로컬 파일 시스템 또는 git에서 NPM 모듈을 설치할 수 있습니까?

npm install --from-git git@server:project

개인 npm 모듈에 추가

"private": true 

당신의 소포로.제이손

그런 다음 다른 모듈의 전용 모듈을 참조하려면 패키지에서 이 모듈을 사용합니다.제이손

{
    "name": "myapp",
    "dependencies": {
        "private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#v1.0.0",
    }
}
cd somedir
npm install .

또는

npm install path/to/somedir

somedir다음을 포함해야 합니다.package.json안에. 에안그안.

Git에 대해서도 알고 있습니다.

npm install git://github.com/visionmedia/express.git

로컬 파일 시스템 또는 git에서 NPM 패키지를 설치할 수 있습니까?

네, 할 수 있어요!문서 https://docs.npmjs.com/cli/install 에서.

패키지:

  • 패키지로 설명되는 프로그램이 들어 있는 폴더.json 파일
  • (a)가 들어 있는 지퍼가 달린 타르볼
  • (b)로 결정되는 URL
  • 꾸짖음<name>@<version>(c)와 함께 것.
  • 꾸짖음<name>@<tag>(d) (d) 가것는키리를것을
  • 꾸짖음<name> (e)를 " 태그를
  • 꾸짖음<git remote url>(b)로 결정되는.

npm 정말 대단하지 않나요?

2016년 1월 업데이트

다른 답변 외에도 팀 컨텍스트에서 개인 모듈을 사용할 수 있도록 하려는 시나리오도 있습니다.

GithubBitbucket 모두 팀 API Key 생성 개념을 지원합니다.이 API 키는 이 팀의 API 요청을 수행하기 위한 암호로 사용할 수 있습니다.

개인 npm 모듈에 추가

"private": true 

당신의 소포로.제이손

그런 다음 다른 모듈의 전용 모듈을 참조하려면 패키지에서 이 모듈을 사용합니다.제이손

    {
        "name": "myapp",
        "dependencies": {
            "private-repo":
"git+https://myteamname:aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4@bitbucket.org/myprivate.git",
        }
    }

여기서 team name = myteam name, API Key = aQtcplwFzlumj0mIDdRGCbsAq5d6Xg4

여기서 저는 비트 버킷 레포를 참조하지만, 깃허브를 사용하는 것도 거의 같습니다.

마지막으로, 한 달에 7달러를 지불해도 괜찮으시다면(서면 기준), 이제 즉시 개인 NPM 모듈을 사용할 수 있습니다.

FWIW: 저는 개인 조직 저장소를 다룰 때 이 모든 답변에 문제가 있었습니다.

다음은 저에게 효과가 있었습니다.

npm install -S "git+https://username@github.com/orgname/repositoryname.git"

예:

npm install -S "git+https://blesh@github.com/netflix/private-repository.git"

저는 왜 다른 답들이 이 한 경우에 저에게 효과가 없었는지 완전히 확신할 수 없습니다. 왜냐하면 그것들은 제가 구글에 접속해서 이 답을 찾기 전에 가 먼저 시도했던 것들이기 때문입니다.그리고 다른 대답들은 제가 과거에 했던 것들입니다.

이것이 다른 누군가에게 도움이 되기를 바랍니다.

아래와 같이 접근 가능한 방식으로 코드를 구성합니다.이것이 당신에게 가능하다면요.

  • NodeProjs\Apps\MainApp\package입니다.제이손

  • NodeProjs\Modules\DataModule\package입니다.제이손

메인앱 @ NodProjs\Apps\MainApp\

npm install --S ../../Modules/DataModule

패키지를 업데이트해야 할 수 있습니다.json as:

 "dependencies": {
       "datamodule": "../../Modules/DataModule"
}

이것은 제 상황에 효과가 있었습니다.

저도 같은 문제가 있었는데, 검색을 좀 해본 결과 레지(https://github.com/mbrevoort/node-reggie) )를 발견했습니다.꽤 튼튼해 보입니다.개인 서버에 NPM 모듈을 가볍게 게시할 수 있습니다.완벽하지는 않습니다(설치 시 인증 없음). 그리고 아직은 매우 젊지만, 현지에서 테스트를 해보니, 해야 할 일을 하는 것 같습니다.

그건...(그리고 이것은 단지 그들의 문서에서 나온 것입니다.

npm install -g reggie
reggie-server -d ~/.reggie

그런 다음 모듈 디렉토리에 CD를 넣고...

reggie -u http://<host:port> publish 
reggie -u http://127.0.0.1:8080 publish 

마지막으로, 직접 npm 설치 명령을 사용하거나 package.json 내에서 해당 URL을 사용하여 regie에서 패키지를 설치할 수 있습니다.이와 같이

npm install http://<host:port>/package/<name>/<version>
npm install http://<host:port>/package/foo/1.0.0

아니면..

dependencies: {
    "foo": "http://<host:port>/package/foo/1.0.0"
}

Npm은 이제 사용자당 월 7달러의 비용으로 무제한 프라이빗 호스팅 모듈을 제공합니다.

cd private-project
npm login

set 신패지키json set."name": " @username/private-project"

npm publish

프로젝트가 필요한 경우:

cd ../new-project
npm install --save @username/private-project

이것이 제가 찾던 것이었습니다 - "private repo"에서 최신 정보를 얻으십시오.

GitHub:

$ npm install git+https://token:x-oauth-basic@github.com/username/my-new-project.git
$ npm install git+ssh://git@github.com/username/my-new-project.git

비트 버킷:

$ npm install git+https://username:password@bitbucket.org/username/my-new-project.git
$ npm install git+ssh://git@bitbucket.org/username/my-new-project.git

Arcseldon의 답변을 시작으로 URL에 다음과 같이 팀 이름이 필요하다는 것을 알게 되었습니다.

npm install --save "git+https://myteamname@aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4@bitbucket.org/myteamname/myprivate.git"

또한 API 키는 개별 사용자가 아닌 팀에서만 사용할 수 있습니다.

개인 github 저장소와 함께 다음을 사용합니다.

npm install github:mygithubuser/myproject

매우 간단합니다.

npm config set registry https://path-to-your-registry/

은 실제로 로는제실을 설정합니다.registry = "https://path-to-your-registry" 행은 입니다./Users/<ur-machine-user-name>/.npmrc

- 명으로로설기설모 - 표수있다니습시로 할 수 .npm config list

이러한 목적으로 Node.js에 구축된 경량 개인 Npm 프록시 레지스트리인 Verdaccio를 사용할 수 있습니다.또한 그것은 자유롭고 오픈 소스입니다.Verdaccio를 사용하면 일반적인 개인 NPM 레지스트리만큼 번거롭지 않습니다.

사이트에서 설치 및 실행 방법에 대한 자세한 정보를 찾을 수 있지만 다음 단계가 있습니다.

다가 필요합니다.node >=8.x.

    // Install it from npm globally
    npm install -g verdaccio

    // Simply run with the default configuration that will host the registry which you can reach at http://localhost:4873/
    verdaccio

    // Set the registry for your project and every package will be downloaded from your private registry
    npm set registry http://localhost:4873/

    // OR use the registry upon individual package install
    npm install --registry http://localhost:4873

또한 도커가 있어 공개적으로 사용 가능한 도커에 쉽게 게시할 수 있으며 개인 npm 저장소를 사용하여 구성 시 다른 사람에게 배포할 수 있습니다!

시스템이 방화벽 아래에 있는 경우에도 공용 Github 저장소에서 설치하도록 구성:

dependencies: {
   "foo": "https://github.com/package/foo/tarball/master"
}

물론 개인 npm 레지스트리를 설정하는 것이 가장 확장성이 높고 장기적인 해결책이지만 처음에는 다소 번거롭습니다.

또한 다음을 사용하여 설치할 수 있습니다.git+https/ssh다른 답변에서 언급한 바와 같이.하지만 프라이빗 레포가 있고 클라우드에서 이미지를 구축하는 경우, 예를 들어 구글 클라우드 빌드를 사용하여 GitHubsh 연결을 설정해야 합니다.

이와 같은 일회성 사례에 대한 가장 간단한 해결책은 다음과 같은 방법을 사용하여 해결할 수 있습니다.

  • 처음부터 자신의 라이브러리를 복제 및 수정하거나 만듭니다.

  • 아카이브 파일(패키지 코드와 종속성)을 생성합니다.

    yarn install && yarn pack

    이것은 다음과 같은 파일을 생성할 것입니다.

    rich-markdown-editor-v11.13.117.tgz

  • 이 파일을 다음으로 이동libs의 항목 종속성 개체를 폴더 및 추가합니다.package.json.

    "rich-markdown-editor": "file:libs/rich-markdown-editor-v11.13.117.tgz",
    
  • 이제 패키지를 설치합니다.

    yarn install
    
  • VCS에 해당 파일을 추가해야 하며 도커 이미지 생성의 설치 프로세스가 클라우드에서도 작동해야 합니다.

참고: 패키지를 자주 업데이트하고 VCS에서 커밋하면 전체 기록으로 복제하는 동안 리포 크기가 증가합니다.

  • 표준 "@my-org/my-module"을 사용하여 조직 이름으로 모듈을 게시합니다(기본적으로 모든 조직 모듈은 비공개임).
  • npm 프로필에서 "액세스 토큰" 아래에 읽기 전용 액세스 토큰을 만듭니다.
  • 다음으로 프로젝트 디렉토리 루트에서 다음을 만듭니다..npmrc파일 및 파일 내부에 다음과 같이 기록합니다.
//registry.npmjs.org/:_authToken=${Your_Access_Token}

참고: 이는 동일한 표준을 따르는 다른 패키징 서비스에도 적용됩니다.

언급URL : https://stackoverflow.com/questions/10386310/how-to-install-a-private-npm-module-without-my-own-registry

반응형