github에서 모듈을 설치하려고하면 다음과 같은 결과가 발생합니다.
package.json에서 ENOENT 오류가 발생했습니다.
express를 사용하여 쉽게 재현 :
npm install https://github.com/visionmedia/express
오류가 발생합니다.
npm install express
공장.
왜 github에서 설치할 수 없습니까?
다음은 콘솔 출력입니다.
npm http GET https://github.com/visionmedia/express.git
npm http 200 https://github.com/visionmedia/express.git
npm ERR! not a package /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/tmp.tgz
npm ERR! Error: ENOENT, open '/home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 3.8.0-23-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/visionmedia/express.git"
npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/guym/dev_env/projects_GIT/proj/somename/npm-debug.log
npm ERR! not ok code 0
답변
https://github.com/visionmedia/express
npm 모듈이 아닌 웹 페이지의 URL 이기 때문 입니다. 이 맛을 사용하십시오 :
git+https://git@github.com/visionmedia/express.git
또는 SSH가 필요한 경우이 맛 :
git+ssh://git@github.com/visionmedia/express.git
답변
npm install visionmedia/express
Github에서 설치할 수도 있습니다
또는
npm install visionmedia/express#branch
또한 Gist, Bitbucket, Gitlab 및 기타 여러 특수 형식에서 직접 설치할 수 있습니다. 그들 모두를위한 npm install
문서 를 보십시오 .
답변
자식이 설치되어 있지 않으면 시도해 볼 수 있습니다
npm install --save https://github.com/Amitesh/gulp-rev-all/tarball/master
답변
2016 년 9 월 업데이트
vanilla https github URL에서 설치하면 이제 작동합니다 :
npm install https://github.com/fergiemcdowall/search-index.git
편집 1 : 소스 제어 시스템에서 읽고 있기 때문에 모든 모듈에 대해이 작업을 수행 할 수 없다고 말하는 몇 명의 사용자가 있습니다. 유효하지 않은 / 컴파일되지 않은 / 버기 코드가 포함될 수 있습니다. 명확하게하기 위해 (말하지 않고 가야하지만) 리포지토리의 코드가 npm 사용 가능 상태 인 경우 github에서 직접 행복하게 설치할 수 있습니다
편집 2 : (21-10-2019) 우리는 이제 “peak typescript / React / Babel”을 통해 살고 있으므로 JavaScript 컴파일이 꽤 일반적이되었습니다. 컴파일을 고려해야 할 경우를 살펴보십시오 prepare
. 즉, NPM 모듈은 컴파일 할 필요 가 없으며, 특히 오래된 노드 모듈 (그리고 아마도 매우 새로운 최첨단 “ESNext”-y 모듈)의 경우 컴파일이 기본값이 아니라고 가정하는 것이 좋습니다.
답변
npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
다른 지점 도 사용해야합니다.
답변
Peter Lyons의 최신 답변은 최신 NPM 버전과 관련이 없습니다. 예를 들어,이 답변에서 비판 된 것과 동일한 명령을 사용하는 것이 좋습니다.
$ npm install https://github.com/visionmedia/express
문제가 계속되면 사용중인 패키지에 문제가있을 수 있습니다.
답변
이 방법은 npm의 설치 설명서 와 여기에있는 다른 많은 답변 에서 꽤 잘 설명 되어 있습니다.
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git[#<commit-ish>]
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git>[#semver:^x.x]
npm install git+https://git@github.com/<githubname>/<githubrepo.git>
npm install git://github.com/<githubname>/<githubrepo.git>
npm install github:<githubname>/<githubrepo>[#<commit-ish>]
그러나 최근에 변경된 주목할만한 점은 prepare
스크립트를 대체하기 위해 스크립트를 추가하는 npm prepublish
입니다. 이것은 git을 통해 설치된 모듈이 prepublish
스크립트를 실행 하지 않아 모듈이 npm 레지스트리에 게시 될 때 발생하는 빌드 단계를 완료하지 못한 오랜 문제를 해결합니다 . https://github.com/npm/npm/issues/3055를 참조 하십시오 .
물론 모듈 작성자는 새로운 prepare
지시문 을 사용하여 작동을 시작 하려면 package.json을 업데이트해야합니다 .