[node.js] 필요한 경우 npm 확인 및 패키지 업데이트

Karma 테스트 러너를 TeamCity에 통합해야하며,이를 위해 sys-engineers에게 다음과 같은 작은 스크립트 (powershell 또는 기타)를 제공하고 싶습니다.

  1. 일부 구성 파일에서 원하는 버전 번호를 선택하십시오 (나는 그것을 주석으로 넣을 수 있다고 생각합니다 karma.conf.js)

  2. npm의 글로벌 저장소에 정의 된 카르마 러너 버전이 설치되어 있는지 확인

  3. 그렇지 않은 경우 또는 설치된 버전이 원하는 것보다 오래된 경우 : 올바른 버전을 선택하여 설치하십시오.

  4. 그것을 실행 : karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

제 진짜 질문은 “원하는 버전의 패키지가 설치되어 있다면 어떻게 스크립트를 체크인 할 수 있습니까?”입니다. 확인을해야합니까 아니면 npm -g install매번 전화하는 것이 안전 합니까?

다른 구성 값이 호환되지 않을 수 있기 때문에 항상 사용 가능한 최신 버전을 확인하고 설치하고 싶지 않습니다.



답변

프로젝트의 어떤 모듈이 ‘이전’인지 확인하려면 :

npm outdated

구식 ‘은 정의 된 모든 모듈을 확인 package.json하고 NPM 레지스트리에 최신 버전 이 있는지 확인합니다 .

예를 들어, 말 xml2js 0.2.6(에있는 node_modules현재 프로젝트) 최신 버전 (0.2.7) 존재하기 때문에 오래된된다. 당신은 볼 것이다 :

xml2js@0.2.7 node_modules/xml2js current=0.2.6

모든 종속성 을 업데이트 하려면 확신이있는 경우 다음을 수행하십시오.

npm update

또는 xml2js다음 과 같은 단일 종속성을 업데이트하려면

npm update xml2js


답변

npm outdated업데이트해야 할 패키지를 식별하고 npm update <package name>각 패키지를 업데이트하는 데 사용할 수 있습니다. 그러나 npm@5.0.0 이전 npm update <package name>에는 문제가있는 package.json의 버전이 업데이트되지 않습니다.

가장 좋은 워크 플로우는 다음과 같습니다.

  1. 오래된 패키지 식별
  2. 패키지의 버전을 업데이트하십시오.
  3. npm update각 패키지의 최신 버전을 설치하기 위해 실행

npm-check-updates이 워크 플로에 도움이되도록 확인하십시오 .

  • npm-check-updates 설치
  • npm-check-updates오래된 패키지를 나열하기 위해 실행하십시오 (기본적으로 running과 동일 npm outdated)
  • npm-check-updates -upackage.json의 모든 버전을 업데이트하려면 실행하십시오 (이것은 마술 소스입니다)
  • npm update업데이트 된 패키지를 기반으로 새 버전의 패키지를 설치하려면 평소와 같이 실행하십시오.

답변

“fresh”모듈도 있습니다 npm-check:

npm-check

오래되고 부정확하며 사용되지 않는 종속성을 확인하십시오.

여기에 이미지 설명을 입력하십시오

또한 종속성을 업데이트하는 편리한 대화식 방법을 제공합니다.


답변

쉬운 단계 :

$ npm i -g npm-check-updates && ncu -u && npm i

그게 다야 모든 패키지 버전 package.json은 최신 주요 버전이됩니다.

편집하다:

여기서 무슨 일이 일어나고 있습니까?

  1. 업데이트를 확인하는 패키지 설치

  2. 이 패키지를 사용하여 package.json(-u는 –updateAll의 약자)의 모든 패키지 버전을 업데이트하십시오 .

  3. 새로운 버전의 패키지를 모두 설치하십시오.


답변

  • 단일 로컬 패키지를 업데이트하려면

    1. 먼저 오래된 패키지를 찾으십시오.

      npm outdated

    2. 그런 다음 수동으로 원하는 패키지를 다음과 같이 업데이트하십시오.

      npm update --save package_name

이렇게하면 로컬 package.json
파일 을 업데이트 할 필요가 없습니다 .

패키지가 최신 버전으로 업데이트됩니다.

  • package.json파일에 일부 버전을 작성 하고 다음을 수행하는 경우 :

    npm update package_name

    이 경우 package.json파일에 작성한 버전과 관련하여 다음 안정 버전 (원하는)을 얻습니다 .

그리고 npm list (package_name)로컬 패키지의 현재 버전을 찾을 수 있습니다.


답변

일부 종속성 매니페스트 파일의 취약성을 업데이트하거나 수정하기위한 NPM 명령

  • 아래 명령을 사용하여 노드 모듈의 오래된 취약점을 확인하십시오.

    npm audit

  • 취약점이 발견되면 아래 명령을 사용하여 모든 문제를 해결하십시오.

    npm audit fix

  • 그것이 효과가 없다면 시도해보십시오.

    npm audit fix -f이 명령은 거의 모든 취약점을 해결합니다. 일부 의존성 또는 devDependencies는 package-lock.json 파일에 잠겨 있으므로 -f플래그를 사용 하여 강제로 업데이트합니다.

  • 강제 감사 수정을 사용하지 않으려면 package-lock.jsonpackage.json 파일 에서 종속 버전을 변경하여 수동으로 수정할 수 있습니다 . 그런 다음 실행

npm update && npm upgrade


답변

오래된 패키지 확인

npm outdated

업데이트 할 패키지 확인 및 선택

npx npm-check -u

npm oudated img

npx npm-check -u img