ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정규식을 이용해서 package-lock.json의 주소를 변경 처리
    NodeJS 2023. 6. 2. 14:00

    package-lock.json에서 Nexus Repository 변경시 처리 방법

    1. package-lock.json 파일에 대하여

    package-lock.json 파일은 NPM 패키지 매니저에서 사용하는 파일 중 하나로, 프로젝트의 의존성(dependency) 정보를 저장하는 파일입니다. 이 파일은 npm install 명령을 실행할 때 자동으로 생성되며, 프로젝트에 필요한 의존성 패키지의 버전 정보를 담고 있습니다.

    만약 Nexus Repository의 URL이 변경되거나 새로운 Nexus Repository를 사용해야 하는 경우, package-lock.json 파일을 업데이트해야 합니다.

    package-lock.json 파일의 구조는 다음과 같습니다.

    {
      "name": "lahuman",
      "version": "1.0.0",
      "lockfileVersion": 2,
      "requires": true,
      "packages": {
        // 의존성 패키지 정보가 포함된 객체들
      },
      "dependencies": {
        // 프로젝트의 모든 의존성 패키지 정보가 포함된 객체들
      }
    }
    

    packages 객체는 프로젝트에서 사용되는 모든 패키지 정보를 포함합니다. dependencies 객체는 packages 객체에서 사용되는 의존성 패키지 정보만을 포함합니다.

    package-lock.json 파일은 프로젝트에서 사용되는 패키지의 버전 정보를 포함하고 있기 때문에, 다른 환경에서 프로젝트를 재구성할 때 항상 이 파일을 함께 사용해야 합니다. 이를 통해 모든 개발자나 서버에서 일관된 패키지 버전을 사용할 수 있습니다.

    2. Repository 주소 변경 처리

    package-lock.json파일에서 주소를 확인합니다.

    주소는 resolved라는 키를 기반으로 아래 예제와 같이 설정됩니다

    ...
      "node_modules/react-mui-validation": {
          "version": "0.3.0",
          "resolved": "https://registry.npmjs.org/react-mui-validation/-/react-mui-validation-0.3.0.tgz",
          "integrity": "sha512-NQK4A/wx8P61rZ0CNz/IdTz+Rh9RlE6PVtrwxcoIGxhKo7mDwMI1QIudvaOUX+2vnsnRFFxpNN1mr10ITMqB5Q=="
        },
    ...

    주소를 변경하는 방법은 정규식을 이용하면 쉽게 처리가 가능합니다.

    변경하려는 주소를 정규식 형식에서 사용 할 수 있도록 변경합니다.

    # 변경할 주소 준비 
    $ NEXUS_REGISTRY="https://lahuman.github.io/"
    # 정규식에서 사용할 수 있는 형태로 주소 변경 - https\:\/\/lahuman\.github\.io\/
    $ export REPO_URL=$(echo ${NEXUS_REGISTRY} | sed 's#/#\\/#g; s#\.#\\.#g; s/:/\\:/g;') 
    # sed 명령어를 이용한 주소 변경 후 new 파일을 생성
    $ sed -E "s/\"resolved\": \"(.*org\/)/\"resolved\": \"${REPO_URL}/g" package-lock.json >> new
    # 생성된 파일을 pacage-lock.json으로 변경
    $ mv new package-lock.json

    위의 명령어를 실행 후 확인을 하면 아래와 같이 주소가 변경 된 것을 확인 할 수 있습니다

    ...
        "node_modules/react-mui-validation": {
          "version": "0.3.0",
          "resolved": "https://lahuman.github.io/react-mui-validation/-/react-mui-validation-0.3.0.tgz",
          "integrity": "sha512-NQK4A/wx8P61rZ0CNz/IdTz+Rh9RlE6PVtrwxcoIGxhKo7mDwMI1QIudvaOUX+2vnsnRFFxpNN1mr10ITMqB5Q=="
        },
    ...

    마지막으로

    package-lock.json 파일은 일반적으로 Git 저장소에 커밋하여 프로젝트의 의존성 정보를 공유합니다.
    이 파일은 package.json 파일의 의존성 정보를 기반으로 자동으로 생성되기 때문에 직접 수정하지 않아도 됩니다.
    하지만 때로는 package-lock.json 파일을 직접 수정해야 하는 경우도 있습니다.
    예를 들어, 의존성 패키지의 버전을 업그레이드하거나, 의존성 패키지를 수동으로 추가하거나 제거하는 경우 그리고 repository 주소 변경 등이 있습니다.

    'NodeJS' 카테고리의 다른 글

    nestjs에서 swagger사용시, generic 타입에 대한 response schema 처리  (0) 2023.06.05
    VSCode에서 Jest Debug 설정  (0) 2023.05.31
    nestjs-pino 로깅 처리  (0) 2023.05.30
    Node.js 메모리 옵션  (0) 2023.05.29
    Nodejs 동작 훑어보기  (0) 2023.05.27
Designed by Tistory.