공유 코드를 가져 와서 중앙 레지스트리에 업로드하고 싶지 않은 NPM 모듈에 넣었습니다. 문제는 다른 프로젝트에서 어떻게 설치합니까?
명백한 방법은 아마도 내 NPM 레지스트리를 설정하는 것이지만 문서에 따르면 많은 번거 로움이 포함됩니다.
로컬 파일 시스템에 있거나 심지어 git에서 NPM 모듈을 설치할 수 있습니까?
npm install --from-git git@server:project
답변
cd somedir
npm install .
또는
npm install path/to/somedir
somedir
package.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 월 업데이트
다른 답변 외에도 팀 컨텍스트에서 개인 모듈을 사용하려는 시나리오가 있습니다.
Github 와 Bitbucket 은 모두 팀 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"
}
이것은 내 상황에서 효과적이었습니다.