it-source

npm 피어 종속성을 자동으로 설치하는 방법은 무엇입니까?

criticalcode 2023. 6. 25. 20:11
반응형

npm 피어 종속성을 자동으로 설치하는 방법은 무엇입니까?

예를 들어 Angular2를 설치하는 경우:

npm install --save angular2
temp@1.0.0 /Users/doug/Projects/dougludlow/temp
├── angular2@2.0.0-beta.3 
├── UNMET PEER DEPENDENCY es6-promise@^3.0.2
├── UNMET PEER DEPENDENCY es6-shim@^0.33.3
├── UNMET PEER DEPENDENCY reflect-metadata@0.1.2
├── UNMET PEER DEPENDENCY rxjs@5.0.0-beta.0
└── UNMET PEER DEPENDENCY zone.js@0.5.11

npm WARN angular2@2.0.0-beta.3 requires a peer of es6-promise@^3.0.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of es6-shim@^0.33.3 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of reflect-metadata@0.1.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of rxjs@5.0.0-beta.0 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of zone.js@0.5.11 but none was installed.

피어 종속성도 설치할 수 있는 마법 플래그가 npm에 전달할 수 있습니까?하나도 못 찾았는데요피어 종속성을 수동으로 복사하여 붙여넣고 올바른 버전이 있는지 확인하는 것은 지루합니다.

다시 말해서, 저는 다음과 같은 일을 하지 않는 것이 좋습니다.

npm install --save angular2@2.0.0-beta.3 es6-promise@^3.0.2 es6-shim@^0.33.3 reflect-metadata@0.1.2 rxjs@5.0.0-beta.0 zone.js@0.5.11

더 좋은 방법은 무엇입니까?

npm 버전 7 이상

npm v7은 자동 peerDependencies 설치를 다시 도입했습니다.이제 V7에서는 V3 이전 버전과 마찬가지로npm i모든 peerDependencies가 자동으로 설치되어야 합니다.

그들은 오래된 문제를 여러 종속자 간의 버전 호환성으로 수정하기 위해 몇 가지 변경을 가했습니다.당신은 토론발표를 볼 수 있습니다.

이전 답변

피어 종속성의 자동 설치는 해결하려고 시도한 것보다 더 많은 문제를 야기하기 때문에 npm 3과 함께 명시적으로 제거되었습니다.예를 들어 다음과 같은 내용을 참조할 수 있습니다.

그래서 아니요, 주어진 이유로, 당신은 npm 3 이상으로 자동으로 설치할 수 없습니다.

다시 써서 해결했습니다.package.json경고의 정확한 값을 사용합니다.

실행 시 경고npm:

npm WARN angular2@2.0.0-beta.3 requires a peer of es6-shim@^0.33.3 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of reflect-metadata@0.1.2

package.json글을 쓰다

"es6-shim": "^0.33.3",
"reflect-metadata": "0.1.2",

그런 다음 삭제node_modules디렉토리입니다.

마지막으로 아래 명령을 실행합니다.

npm install

이 시나리오에서 유용한 치트 코드와 다른 몇 가지...

├── UNMET PEER DEPENDENCY @angular/common@4.0.2
├── UNMET PEER DEPENDENCY @angular/compiler@4.0.2
├── UNMET PEER DEPENDENCY @angular/compiler-cli@4.0.2
├── UNMET PEER DEPENDENCY @angular/core@4.0.2
├── UNMET PEER DEPENDENCY @angular/forms@4.0.2
├── UNMET PEER DEPENDENCY @angular/http@4.0.2
├── UNMET PEER DEPENDENCY @angular/platform-browser@4.0.2
├── UNMET PEER DEPENDENCY @angular/platform-browser-dynamic@4.0.2 >
  1. 오류를 코드 편집기에 복사하여 붙여넣습니다.
  2. 커서로 원하지 않는 부분을 강조 표시합니다.이 경우├── UNMET PEER DEPENDENCY
  3. 명령 + d를 여러 번 누릅니다.
  4. 삭제를 두 번 누릅니다. (실수로 강조 표시한 경우 공백을 누릅니다.├── UNMET PEER DEPENDENCY )
  5. 한 번만 눌러주세요.더하다npm install
  6. 한 번 눌러주세요.더하다--save
  7. 항목을 다시 CLI에 복사하고 실행합니다.
npm install @angular/common@4.0.2 @angular/compiler@4.0.2 @angular/compiler-cli@4.0.2 @angular/core@4.0.2 @angular/forms@4.0.2 @angular/http@4.0.2 @angular/platform-browser@4.0.2 @angular/platform-browser-dynamic@4.0.2 --save

나는 다음과 같은 오류를 가진 npm 패키지를 개발할 때 경험했습니다.peerDependencies어떤 것이든 확실하게 해야만 했어요.peerDependencies또한 다음과 같이 나열되었습니다.devDependencies이 프로젝트는 글로벌하게 설치된 패키지를 자동으로 사용하지 않습니다.

프로젝트가 피어를 검색하여 설치합니다.

현재v1.0.1그것은 답장을 쓰는 것을 지원하지 않습니다.package.json자동적으로, 이것은 본질적으로 여기서 우리의 필요를 해결할 것입니다.

항공편 내 문제에 지원을 추가하십시오. https://github.com/spatie/npm-install-peers/issues/4

저도 같은 문제에 직면하고 있었습니다. 운 좋게도 설치 명령어와 함께 피어 종속성을 설치할 수 있는 다른 방법을 찾았습니다.

1단계:$ npm i npm-install-peers -D

플러그인에 대한 자세한 내용은 https://www.npmjs.com/package/npm-install-peers 을 참조하십시오.

2단계: 업데이트package.json의 대본을 .

  ....
   "scripts": {
    ...
    "postinstall": "npm-install-peers"
  },
  ....

3단계: 설치 명령을 눌러 모든 플러그인을 설치합니다.

$ npm install

실을 설치한 다음 실행:

yarn global add install-peerdeps

언급URL : https://stackoverflow.com/questions/35207380/how-to-install-npm-peer-dependencies-automatically

반응형