Development Tip

NPM으로 패키지를 설치할 때 종속성 중 하나의 다른 버전을 사용하도록 지정할 수 있습니까?

yourdevel 2020. 12. 5. 10:46
반응형

NPM으로 패키지를 설치할 때 종속성 중 하나의 다른 버전을 사용하도록 지정할 수 있습니까?


lib-a종속성이 있는 라이브러리를 설치 dep-1하고 dep-2. 이전 lib-a버전을 사용하도록 package.json에서 선언 한 경우 dep-2(방금 나온 0.8.0 노드에서 작동하지 않는다고 가정 해 보겠습니다), dep-2노드 0.8.0에서 작동 하는 분기가 있습니다. 지점 이름 node0.8.0.

따라서 방정식의 패키지는 다음과 같습니다.

git://github.com/user-a/lib-a
git://github.com/user-b/dep-1
git://github.com/user-c/dep-2
git://github.com/user-c/dep-2#node0.8.0

NPM에 설치하도록 지시하는 방법이 lib-a있지만 dep-2#node0.8.0대신 사용 dep-2합니까?

NPM을 사용하면 다음과 같은 프로젝트의 특정 분기를 설치할 수 있습니다.

npm install git://github.com/user-c/dep-2#node0.8.0

의 package.json을 사용자 정의 lib-a하려면 다음 dep-2#node0.8.0과 같이 사용하도록 지정할 수 있습니다 .

{
  "name": "lib-a",
  "dependencies": {
    "dep-1": ">= 1.5.0",
    "dep-2": "git://github.com/user-c/dep-2#node0.8.0"
  }
}

package.json을 수정하면 다음을 실행할 수 있습니다.

npm install lib-a

노드 0.8.0 호환 dep-2브랜치를 설치합니다 . 그러나이를 위해서는 수정에 대한 액세스 권한이 있어야하며 lib-a, 특정 경우에는 그렇지 않습니다. 기술적으로 lib-a는 위의 변경 사항을 package.json으로 포크 하고 변경할 수 있습니다. 그러나 내 특정 경우 lib-a에는 다른 라이브러리 의 종속성 이므로 참조되는 프로젝트를 계속해서 포크해야합니다.

그래서 질문은 NPM에게을 설치 lib-a하고 node0.8.0분기 를 사용하도록 지시하는 방법 dep-2있습니까? 이 같은:

npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0

그것은 굉장 할 것입니다. 가능하지 않다면 프로젝트 체인을 포크 / 사용자 정의 할 준비를 할 수 있도록 알아두면 좋을 것입니다.


NPM 설치 구문 :

npm install (with no args in a package dir)
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install [@<scope>/]<name> [--save|--save-dev|--save-optional] [--save-exact]
npm install [@<scope>/]<name>@<tag>
npm install [@<scope>/]<name>@<version>
npm install [@<scope>/]<name>@<version range>
npm i (with any of the previous argument usage)

따라서 이러한 방법 중 하나를 선택하여 모듈을 설치할 수 있습니다.

특정 버전을 설치하는 가장 간단한 방법은 다음과 같습니다.

npm install module@0.0.2

더 많은 정보 : https://docs.npmjs.com/cli/install

참고 URL : https://stackoverflow.com/questions/11233133/when-installing-a-package-with-npm-can-you-tell-it-to-use-a-different-version-o

반응형