【npm】패키지의 취약성 대처(비망록)

nuxt로 앱을 빌드할 때 패키지 취약점에 대한 경고문이 표시됨
npm 종속성을 복구하고 싶습니다.
「경고문을 1㎈도 이해하지 않고 npm install로 참깨화해 왔다」사람에게 있어, 한 걸음 내딛는 보조륜이 되면(자) 생각해 메모를 남깁니다
근본적인 이해에 대해서는 별도로 조사해 주세요

목차


  • package.json 및 package-lock.json
  • 취약성 확인
  • 취약성 자동 수정
  • 취약점 수동 수정
  • 참고 기사

  • package.json과 package-lock.json



    node_modules (패키지의 무리)는 git에 push하지 않습니다.
    따라서 재현하기 위해 패키지를 기록하는 파일 (package.json)이 필요합니다.
    package.json에서 지정한 내용을 바탕으로 npm install에서는 각종 패키지가 설치된다
    하지만 실제로 설치되는 것은 package.json에 쓰는 방법이나 타이밍으로 설치되는 것이 바뀝니다.
    그 때문에, 실제로 인스톨 된 것이 package-lock.json에 기록된다 (package-lock.json이 존재하지 않는 경우는 생성된다)
    따라서 다른 개발 환경에서 npm install 할 때 package-lock.json이 참조됩니다.
    고정된 버전으로 각 패키지가 설치되므로 node_modules를 재현할 수 있습니다.

    취약성 확인



    취약점 확인
    npm audit
    


    audit는 감사라는 의미
    패키지 종속성에 취약한 부분을 알려주는 명령
    ※단, npm v6 이상

    취약점 자동 수정



    취약한 부분의 자동 수정
    npm audit fix
    npm audit fix --force
    


    어느 정도는 자동 수정해 준다
    high,critical을 무너뜨리면 우선 OK
    자동 수정하지 않는 부분은 로그를보고 수동으로 고쳤습니다.

    취약성 수동 수정



    패키지의 위치 참조
    npm ls "パッケージ名"
    

    패키지 이름을 지정하여 어디에 패키지가 있는지 찾을 수 있습니다.
    불필요한 패키지를 제거하고 다시 설치

    패키지 설치
    npm install "パッケージ名"
    npm install "パッケージ名@バージョン" バージョン指定する場合
    

    참고 기사



    Qiita 기사



    취약성 경고를 받은 npm 패키지의 종속성을 역기능으로 고치기
    npm install을 하지 말아야 할 때
    npm 패키지의 vulnerability 대응 흐름
    【Node.js】package.json과 package-lock.json에 대해 간단히 정리
    package-lock.json에 대해 알고 싶어도 듣지 못했습니다.

    외부 기사



    "npm install"과 "npm ci"의 차이점은 무엇입니까?
    package.json 및 package-lock.json의 작동 방법에 대해

    이상



    잘못된 이해와 설명이 있다면 지적해 주시면 감사하겠습니다.

    좋은 웹페이지 즐겨찾기