package.json의 각 종속성을 최신 버전으로 업데이트하는 방법

node.js npm


나는 다른 프로젝트에서 package.json을 복사했으며 이제는 새로운 프로젝트이기 때문에 모든 종속성을 최신 버전으로 충돌시키고 싶습니다.

가장 쉬운 방법은 무엇입니까?

내가 아는 가장 좋은 방법은 npm info express version 을 실행 한 다음 각각에 대해 package.json을 수동으로 업데이트하는 것입니다. 더 좋은 방법이 있어야합니다.

{
  "name": "myproject",
  "description": "my node project",
  "version": "1.0.0",
  "engines": {
    "node": "0.8.4",
    "npm": "1.1.65"
  },
  "private": true,
  "dependencies": {
    "express": "~3.0.3", // how do I get these bumped to latest?
    "mongodb": "~1.2.5",
    "underscore": "~1.4.2",
    "rjs": "~2.9.0",
    "jade": "~0.27.2",
    "async": "~0.1.22"
  }
}

업데이트 5/1/19 : 6 년 후에도이 문제에 대한 포괄적 인 솔루션으로 npm-check-updates 를 계속 유지하고 있습니다. 즐겨!




Answer 1 josh3736


과 같은 NPM-체크인 업데이트는 이 지금은 그렇게 할 수있는 유일한 방법입니다.

npm i -g npm-check-updates
ncu -u
npm install

npm <3.11에서 :

모든 종속성의 버전을 * 로 변경 한 다음 npm update --save 를 실행 하십시오 . ( 참고 : npm의 최신 (3.11) 버전에서 손상됨 ).

Before:

  "dependencies": {
    "express": "*",
    "mongodb": "*",
    "underscore": "*",
    "rjs": "*",
    "jade": "*",
    "async": "*"
  }

After:

  "dependencies": {
    "express": "~3.2.0",
    "mongodb": "~1.2.14",
    "underscore": "~1.4.4",
    "rjs": "~2.10.0",
    "jade": "~0.29.0",
    "async": "~0.2.7"
  }

물론, 이것은 의존성을 업데이트하는 무딘 망치입니다. 당신이 말했듯이 프로젝트가 비어 있고 아무것도 깨질 수 없다면 괜찮습니다.

반면에보다 성숙한 프로젝트에서 작업하는 경우 업그레이드하기 전에 종속성에 주요 변경 사항이 없는지 확인하고 싶을 것입니다.

어떤 모듈이 구식인지 확인하려면 npm outdated 실행하십시오 . 최신 버전을 사용할 수있는 설치된 모든 종속성이 나열됩니다.




Answer 2 Etienne


npm-check-updates 는 모든 종속성의 최신 버전으로 package.json을 자동으로 조정하는 유틸리티입니다.

참조 https://www.npmjs.org/package/npm-check-updates를

$ npm install -g npm-check-updates
$ ncu -u
$ npm install 

[편집] 최신 버전의 npm 을 사용 하는 경우 약간 덜 방해적인 (전역 설치는 피함) 방법 은 다음과 같습니다.

$ npx npm-check-updates -u
$ npm install 



Answer 3 Michael Cole


최신 NPM을 위해 업데이트

npm 2+ (노드 0.12+) :


npm outdated
npm update
git commit package-lock.json

고대 NPM (2014 년경) :

npm install -g npm-check-updates
npm-check-updates
npm shrinkwrap
git commit package-lock.json

뎁을 수축 포장하지 않으면 죽은 프로젝트로 인해 바람이 불 수 있습니다. 나는 다른 날에 프로젝트를 꺼내고 내 뎁이 모두 오래되었거나 업데이트되었거나 혼란스러워서 실행되지 않았습니다. 축소 포장을한다면 npm은 필요한 것을 정확하게 설치했을 것입니다.


Details

지금까지 궁금해하는 사람에게는 다음과 같은 것이 좋습니다.

최신 버전을 제안 하려면 npm-check-updates 또는 npm outdated 사용하십시오 .

# `outdated` is part of newer npm versions (2+)
$ npm outdated
# If you agree, update.  
$ npm update

#       OR

# Install and use the `npm-check-updates` package.
$ npm install -g npm-check-updates
# Then check your project
$ npm-check-updates
# If you agree, update package.json.
$ npm-check-updates -u

그런 다음 새로 설치를 수행하십시오 (RM이 없으면 종속성 경고가 나타납니다)

$ rm -rf node_modules
$ npm install 

마지막에 정확한 버전을 저장 npm-shrinkwrap.jsonnpm shrinkwrap

$ rm npm-shrinkwrap.json
$ npm shrinkwrap

이제 npm install 는 이제 npm-shrinkwrap.json 의 정확한 버전을 사용합니다.

npm-shrinkwrap.json 을 git에 체크인하면 모든 설치에서 정확히 동일한 버전을 사용합니다.

이것은 개발 (항상 모든 업데이트)에서 프로덕션으로 전환하는 방법입니다 (아무것도 만지지 않습니다).

ps Yarn은 패키지 목록을 Facebook으로 전송합니다 .




Answer 4 laconbass


package.json 을 수동으로 열고 변경 하지 않고 최신 버전으로 하나의 종속성 을 업데이트하려면 다음을 실행하십시오.

npm install {package-name}@* {save flags?}

i.e.

npm install express@* --save

참고로, npm-install


거부 된 편집에 대해 Vespakoen 사용자가 언급했듯이 다음과 같이 여러 패키지를 한 번에 업데이트 할 수도 있습니다.

npm install --save package-nave@* other-package@* whatever-thing@*

또한 npm outdated 기반으로 쉘에 하나의 라이너를 할당합니다 . 코드 및 설명 편집 을 참조하십시오 .


추신 : 나는 또한 그런 것들을 위해 package.json 을 수동으로 편집 하는 것을 싫어합니다.)




Answer 5 GollyJer


당신이 사용하는 일이 있다면 비주얼 스튜디오 코드를 당신의 IDE로,이 업데이트 만드는 재미 약간의 확장 기능입니다 package.json 원 클릭 프로세스.

버전 렌즈

enter image description here