npm을 사용하지 않고 node.js 모듈을 설치하는 방법은 무엇입니까?


115

노드의 github 페이지에 나열 되어 있지만 npm-registry로 게시되지 않은 모듈이 많이 있습니다. 이러한 모듈은 npm을 사용하여 설치할 수 없습니다.

이러한 nodejs 모듈을 Git에서 복제 한 후 설치하는 올바른 방법은 무엇입니까?

답변:


73

github에서 소스를 다운로드해야합니다. 기본 파일을 찾은 다음 기본 파일에 포함합니다.

이에 대한 예는 여기> node.js 모듈을 수동으로 설치하는 방법?

일반적으로 소스를 찾고 package.json 파일을 살펴 봐야합니다. 주 파일이 무엇인지 찾을 수 있습니다. 이를 응용 프로그램에 포함 할 수 있습니다.

앱에 example.js를 포함합니다. 응용 프로그램 폴더에 복사하고 기본 js 파일 상단에 추가하십시오.

var moduleName = require("path/to/example.js")


1
외부 URL (예 :)에서 스크립트를 가져올 수 var myscript = require("http://www.mywebsite.com/myscript.js")있습니까? require기능이 외부 URL에 대해 작동하지 않는 것 같습니다 .
Anderson Green

2
require는 실제로 동기식이므로 아니요, 외부 URL에서는 작동하지 않습니다.
Chris Tavares 2014 년

참고 : -master추가 된 github 라이브러리 를 제거해야합니다 . 변화 등 xxx-master으로 xxx.
BAR

65

이러한 모듈은 npm을 사용하여 설치할 수 없습니다.

실제로 이름 대신 로컬 경로를 지정하여 모듈을 설치할 수 있습니다. 저장소에 유효한 package.json파일 이있는 한 작동합니다.


입력하면 다음 npm -l과 같이 예쁜 도움말이 나타납니다.

CLI :

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

내 눈을 사로 잡은 것은 : npm install <folder>

제 경우에는 mrt모듈에 문제가있어서이 작업을 수행했습니다 (임시 디렉토리에서).

  • 저장소 복제

     git clone https://github.com/oortcloud/meteorite.git
  • 그리고 다음을 사용하여 전 세계적으로 설치합니다.

     npm install -g ./meteorite

팁:

다음을 사용하여 동일한 방식으로 저장소를 로컬 npm 프로젝트에 설치할 수도 있습니다.

     npm install ../meteorite

또한 개발중인 패치가 필요한 경우 저장소에 대한 링크를 만들 수 있습니다.

     npm link ../meteorite

1
가장 훌륭한. 모듈에도 문제가 있었기 때문에 웹 프로젝트의 형제 디렉토리로 분기하여 복제하고 모든 종속성을 최신 버전으로 업데이트 한 다음 'npm install ../'을 사용하여 웹 프로젝트에 설치했습니다. broken_module_name 그것은 매력처럼 작동했습니다. 감사!
Perry Tew

+1하지만 npm에 대한 네트워크 액세스 권한이없고 설치하는 모듈에 npm install <folder>수많은 다른 npm 종속성이 있으면 작동하지 않습니다 .
Abdul Rauf

npm이 전역 (확실하지 않음) 범위 또는 로컬 범위에서 node_modules에서 패키지를 찾으면 다시 다운로드를 시도하지 않습니다. 즉, repo의 모든 직접적인 종속성을 미리 다운로드하여 node_module 폴더에 복사 할 수 있으면 작동합니다.
Tiberiu C.

11

github에서 node_modules 디렉토리로 코드를 다운로드합니다.

var moduleName = require("<name of directory>")

그렇게해야합니다.

모듈에 종속성이 있고 package.json이있는 경우 모듈을 열고 npm install을 입력합니다.

도움이 되었기를 바랍니다


이 코드는 주 파일의 이름이 지정되면 작동한다고 생각합니다index.js
R3tep

8

모듈을 로컬 프로젝트에 직접 복제 할 수 있습니다.

시작 터미널. 프로젝트에 CD를 입력 한 다음 :

npm 설치 https://github.com/repo/npm_module.git --save


1
내가 찾고 있던 대답.
Faisal Mq

패키지가 변경되면 어떻게됩니까? 최신 버전으로 어떻게 업데이트합니까? ATM은, 내가 찾은 유일한 "솔루션", node_modules에서 fodler을 삭제 고통이다 package.json 항목 및 재 추가 ... 삭제했다
프레드 락 Stojadinović

1

단계별 :

  • 하자가 프로젝트에서 작업하는 말을 use-gulp사용 ( require들) node_modules와 같은 gulpgulp-util.
  • 이제 gulp-utillib를 약간 수정하고 use-gulp프로젝트 에서 로컬로 테스트하려고합니다 .
  • gulp-utilgithub \ bitbucket 등의 포크 프로젝트
  • 프로젝트로 전환하십시오. cd use-gulp/node_modules
  • 복제 gulp-utilgulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • npm install종속성을 gulp-util-dev사용할 수 있는지 확인하기 위해 실행 합니다.
  • 이제 로의 미러가 gulp-util있습니다 gulp-util-dev. 당신의에서 use-gulp프로젝트, 당신은 지금 대체 할 수있다 : require('gulp-util')...;전화로 : require('gulp-util-dev')당신이 만든 변경 사항을 테스트gulp-util-dev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.