[javascript] npm을 사용하여 로컬 모듈을 설치 하시겠습니까?

다운로드 한 모듈 저장소가 있는데 다른 디렉토리가 아닌 로컬로 설치하려고합니까?

이 작업을 수행하는 쉬운 방법은 무엇입니까?



답변

로부터 NPM-링크 문서 :

로컬 모듈 디렉토리에서 :

$ cd ./package-dir
$ npm link

프로젝트 디렉토리에서 모듈을 사용하십시오.

$ cd ./project-dir
$ npm link package-name

또는 한 번에 상대 경로를 사용하십시오.

$ cd ./project-dir
$ npm link ../package-dir

이것은 후드에서 위의 두 명령을 사용하는 것과 같습니다.


답변

<folder>인수 하나만 제공하면 npm install인수는 패키지 이름 대신 로컬 폴더를 가리켜 야합니다.

npm install /path


답변

같은 사람이 묻고 대답했기 때문에 npm 링크를 추가하겠습니다. 대안으로 를 .

문서에서 :

이것은 자신의 물건을 설치하는 데 편리하므로 지속적으로 다시 빌드하지 않고도 작업하고 반복적으로 테스트 할 수 있습니다.

cd ~/projects/node-bloggy  # go into the dir of your main project
npm link ../node-redis     # link the dir of your dependency

[편집] NPM 2.0부터 package.json에서 로컬 종속성을 선언 할 수 있습니다.

"dependencies": {
    "bar": "file:../foo/bar"
  }


답변

npm pack + package.json

이것이 나를 위해 일한 것입니다.

1 단계 :에서 다음 module project을 실행하십시오 npm pack.

<package-name>-<version>.tar.gz파일 이 생성 됩니다.

2 단계 : 파일을 consumer project

이상적으로는 모든 파일을 루트 의 tmp폴더에 넣을 수 있습니다 consumer-project.

3 단계 : 참조하십시오 package.json:

"dependencies": {
  "my-package": "file:/./tmp/my-package-1.3.3.tar.gz"
}

4 단계 : Install패키지 :

npm install또는 npm i또는yarn

패키지는 consumer-project's node_modules폴더 에 있어야 합니다.

행운을 빕니다…


답변

로컬 모듈에 프로젝트 범위에만 설치하려는 피어 종속성이있는 경우 이러한 접근 방식 ( npm link또는 package.json파일 종속성)이 작동 하지 않습니다 .

예를 들면 다음과 같습니다.

/local/mymodule/package.json:
  "name": "mymodule",
  "peerDependencies":
  {
    "foo": "^2.5"
  }

/dev/myproject/package.json:
  "dependencies":
  {
    "mymodule": "file:/local/mymodule",
    "foo": "^2.5"
  }

이 시나리오에서는 NPM 세트 업 myprojectnode_modules/다음과 같이 :

/dev/myproject/node_modules/
  foo/
  mymodule -> /local/mymodule

노드가로드 mymodule되고 수행 될 때 노드 require('foo')mymodule심볼릭 링크를 확인한 다음 찾을 수없는 /local/mymodule/node_modules/(및 해당 상위 항목) 만 찾습니다 foo. 대신 노드를 살펴보고 /local/myproject/node_modules/싶습니다. 프로젝트가 실행되는 위치 foo와 설치되어 있기 때문입니다 .

그래서,에 우리는 두 노드를 알 수있는 방법이 필요 없는 이 심볼릭 링크를 해결할를 찾을 때 foo, 또는 우리가 설치하는 NPM을 알 수있는 방법이 필요 복사본mymodule파일 종속성 구문에서 사용되는 경우를 package.json. 불행히도, 할 수있는 방법을 찾지 못했습니다 🙁


답변

주요 재산이 없습니까?

이전 사람들이 대답했듯이 npm --save ../location-of-your-packages-root-directory. 는 ../location-of-your-packages-root-directory그러나 그것이 작동하기 위해서는 두 가지가 있어야합니다.

1) package.json해당 디렉토리에서

2) main이 재산 package.json설정해야 작업 IG "main": "src/index.js",경우에 대한 항목 파일 ../location-of-your-packages-root-directoryIS../location-of-your-packages-root-directory/src/index.js


답변