[node.js] 내 레지스트리없이 개인 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"
}

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