Programing

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

lottogame 2020. 3. 11. 00:44
반응형

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


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

명백한 방법은 아마도 내 자신의 NPM 레지스트리를 설정하는 것이지만 문서에 따르면 많은 번거 로움이 필요합니다.

로컬 파일 시스템에 있거나 심지어 git에서 NPM 모듈을 설치할 수 있습니까?

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

cd somedir
npm install .

또는

npm install path/to/somedir

somedirpackage.json내부 를 포함해야합니다 .

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

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

당신에 개인 NPM 모듈 추가

"private": true 

당신의 package.json에

그런 다음 다른 모듈에서 개인 모듈을 참조하려면 패키지에서 이것을 사용하십시오.

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

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

그래 넌 할수있어! 문서에서 https://docs.npmjs.com/cli/install

패키지는 다음과 같습니다

  • a) package.json 파일에 의해 기술 된 프로그램을 포함하는 폴더
  • b) (a)
  • c) (b)로 해석되는 URL
  • d) <name>@<version>(c)와 함께 레지스트리에 게시 된 a
  • e) <name>@<tag>(d)를 가리키는 a
  • f) <name>"최신"태그를 만족하는 a (e)
  • g) <git remote url>(b)로 해석되는 a

npm 훌륭하지 않습니까?


2016 년 1 월 업데이트

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

GithubBitbucket모두 API 키 생성 개념을 지원합니다 . 이 API 키는 이 팀으로 API 요청을 수행하기 위한 비밀번호사용될 수 있습니다 .

당신에 개인 NPM 모듈 추가

"private": true 

당신의 package.json에

그런 다음 다른 모듈에서 개인 모듈을 참조하려면 패키지에서 이것을 사용하십시오.

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

여기서 팀 이름 = myteamname 이고 API 키 = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4

여기에서는 비트 버킷 저장소를 참조하지만 github을 사용하는 것도 거의 동일합니다.

마지막으로, 대안으로, 한 달에 $ 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"

이 사례에서 다른 답변이 왜 효과가 없는지 잘 모르겠습니다. 왜냐하면 Google에 도달 하고이 답변을 찾기 전에 먼저 시도한 것이기 때문 입니다. 그리고 다른 답변은 내가 과거에 한 일입니다.

잘하면 이것은 다른 누군가를 돕습니다.


나는이 같은 문제가 있었고 주변을 둘러 본 후 Reggie ( 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 

마지막으로 URL을 직접 npm install 명령이나 package.json에서 사용하여 reggie에서 패키지를 설치할 수 있습니다.

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"
}

아래와 같이 접근하기 쉬운 방식으로 코드를 구성하십시오. 이것이 가능하다면.

  • NodeProjs \ Apps \ MainApp \ package.json

  • NodeProjs \ Modules \ DataModule \ package.json

MainApp 내에서 @ NodProjs \ Apps \ MainApp \

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

package.json을 다음과 같이 업데이트해야 할 수도 있습니다.

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

이것은 내 상황에서 효과적이었습니다.


Npm은 이제 사용자 당 월 $ 7에 무제한 개인 호스팅 모듈제공합니다.

cd private-project
npm login

패키지 json 세트에 "name": " @username/private-project"

npm publish

그런 다음 프로젝트가 필요합니다.

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

arcseldon의 답변으로 시작 하여 팀 이름이 URL에 다음과 같이 필요하다는 것을 알았습니다.

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

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


머신이 방화벽 아래에 있더라도 퍼블릭 Github 리포지토리에서 설치하도록 구성 :

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

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

npm install github:mygithubuser/myproject

이것은 내가 찾던 것입니다 .

# Get the latest from GitHub, public repo:
$ npm install username/my-new-project --save-dev
# Bitbucket, private repo:
$ npm install git+https://token:x-oauth-basic@github.com/username/my-new-project.git#master
$ npm install git+ssh://git@github.com/username/my-new-project.git#master

# … or from Bitbucket, public repo:
$ npm install git+ssh://git@bitbucket.org/username/my-new-project.git#master --save-dev
# Bitbucket, private repo:
$ npm install git+https://username:password@bitbucket.org/username/my-new-project.git#master
$ npm install git+ssh://git@bitbucket.org/username/my-new-project.git#master
# Or, if you published as npm package:
$ npm install my-new-project --save-dev

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 저장소가 있습니다!


매우 간단합니다-

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

실제로이 registry = "https://path-to-your-registry"줄을/Users/<ur-machine-user-name>/.npmrc

명시 적으로 설정했거나 기본적으로 설정된 모든 값은- npm config list

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

반응형