songdev
songdev
songdev
전체 방문자
오늘
어제
  • 분류 전체보기 (78)
    • Web 개발 (6)
    • 리눅스 (5)
    • git (5)
    • Bigdata (8)
      • 하둡 Architecture 번역 (6)
      • Ambari (2)
    • 코테 (22)
      • 프로그래머스 (22)
    • 자격증 (7)
      • 정보처리기사 (5)
      • SQLD (2)
    • 스터디 (18)
      • 웹 프로그래밍 (3)
      • 개념정리 (4)
      • 예제 (6)
      • 바닐라 JS로 크롬 앱 만들기 (5)
    • 일상 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리눅스
  • 깃허브
  • javascript
  • SQLD
  • 향상된 버블정렬
  • 정렬
  • copyOfRange()
  • sort()
  • github
  • 정보처리기사 필기
  • 배열
  • parseInt()
  • 정보처리기사
  • 프로그래머스
  • 자바스크립트
  • 배열의 복사
  • charAt()
  • level1
  • github push
  • Java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
songdev

songdev

오프라인 환경(폐쇄망)에서 npm 패키지 install 하기(yarn offline)
Web 개발

오프라인 환경(폐쇄망)에서 npm 패키지 install 하기(yarn offline)

2022. 12. 6. 18:15
반응형

프로젝트를 진행하다 보면 종종 인터넷이 안되는 환경에서 작업해야하는 경우가 있다.

npm은 온라인에서 패키지를 받아오는데, 인터넷이 안되는 환경에서는 패키지 다운로드를 할 수 없다.

그렇다고 node_modules 폴더 자체를 가져가기에는 정말 어마어마하게 크다...

 

따라서 이런 경우에는 어떻게 진행했었는지 정리해놓고자 한다.

다른 방식이 있을수도 있으나.. 그냥 내가 했던 방식이다..

 

환경

내부망pc(인터넷 안되는 pc) 1대, 외부망pc 1대

 

결론

yarn으로 패키지 설치 -> 패키지들을 tar.gz으로 묶기 -> 이 tar.gz들을 오프라인 환경으로 가져가서 yarn install 하기

 

npmbox 라는 패키지를 사용해서도 가능하지만, 나는 패키지를 사용하지않고 yarn으로 했었다.

먼저 인터넷 되는 환경에서 작업하기

Step 1. yarn 으로 패키지 설치

npm으로 설치해서 사용했던 패키지들을 모두 yarn 으로 다시 설치한다.

(node_modules를 다 지우고 yarn으로 재설치했다)

$ npm install yarn
$ yarn add express
$ yarn add body-parser
....

 

서비스가 잘 돌아가는지 확인한다.

 

Step 2. 프로젝트 홈 경로에 .yarnrc 파일 생성

프로젝트 홈 경로(node_modules 와 같은 위치)에 .yarnrc 파일을 생성하고 파일에 아래 코드를 넣는다.

yarn-offline-mirror "./npm_packages"
yarn-offline-mirror-pruning true

yarn-offline-mirror : 압축된 .tgz 파일들이 들어갈 폴더

yarn-offline-mirror-pruning : 업데이트 된 패키지 추가 시 yarn cache를 먼저 확인하고 여기에 없는 dependency를 가져옴

 

Step 3. node_modules와 yarn.lock 파일 삭제

 

Step 4. 캐시 삭제

$ yarn cache clean

 

Step 5. 패키지 받아오기

$ yarn install

이렇게 했을때 아까 위에서 지정한 /npm_packages 폴더가 생성되면서 거기에 *.tgz파일들이 저장되고 yarn.lock 파일도 새로 생성이 되면 성공이다.

 

Step 6. 필요한 파일 담기

이제 오프라인 환경에 가져갈 파일들을 usb에 담자.

node_modules 를 제외하고,

npm_packages, 작성한 js 파일들, .yarnrc, yarn.lock 파일, package.json 을 가져가면 된다.

 

혹시 내부망에 node.js와 yarn이 설치되어있지 않다면 그것도 설치파일을 가져가서 따로 설치해야 한다.

node.js와 yarn 설치는 별도의 게시글로 설명한다.

https://songdev.tistory.com/80

 

오프라인 환경(폐쇄망)에 node랑 yarn 설치하기

간단하다. 그냥 인터넷 되는 외부망에서 각 패키지의 tar.gz 파일을 받아서 내부망에 옮기면 된다. 외부망 작업 node 다운로드 https://nodejs.org/download/release/v14.17.5/ Index of /download/release/v14.17.5/ nodejs.or

songdev.tistory.com

 

 

내부망에서 작업하기

Step 1. 사전작업

usb로 가져온 파일들을 원하는 위치에 옮기고, node.js, yarn 을 설치한다.

 

Step 2. 패키지 내려받기

홈 경로로 이동한 뒤에 아래 명령어를 터미널에 입력하여 패키지들을 다운받는다.

(나는 vscode 내 터미널에서 작업했다)

$ yarn install --offline

 

만약 패키지가 추가되면

만약 사용해야하는 패키지가 추가되면

1. 외부망pc에서 node_modules, npm_packages, yarn.lock 파일 삭제하고

$ yarn install

패키지를 yarn install 로 다시 패킹한 다음에 새로 만든 파일들을 다시 usb에 담아서

 

2. 내부망pc에서 node_modules 삭제하고

$ yarn install --offline

다시 설치해서 사용한다.

 

 

 

 

 

 

 

 

참고 사이트

https://musma.github.io/2019/08/23/nodejs-offline-deployment.html

 

오프라인 환경에 NodeJS 애플리케이션 배포하기

오프라인에서 npm install을???

musma.github.io

https://classic.yarnpkg.com/blog/2016/11/24/offline-mirror/

 

Running Yarn offline

Repeatable and reliable builds for large JavaScript projects are vital.If your builds depend on dependencies being downloaded from network, this build system...

classic.yarnpkg.com

 

반응형

'Web 개발' 카테고리의 다른 글

Spring 프로젝트 내 jsp에서 node.js 서버 호출하기  (0) 2023.02.23
오프라인 환경(폐쇄망)에 node랑 yarn 설치하기  (4) 2022.12.09
node.js 파일 업로드 모듈 정리(multer, connect-busboy) (중간저장 없이 업로드)  (0) 2022.12.09
크롬에서 캐시 비우기 및 강력 새로고침  (2) 2022.12.08
이중화 되어있는 웹서버로 ajax 호출하기  (0) 2022.12.08
    'Web 개발' 카테고리의 다른 글
    • 오프라인 환경(폐쇄망)에 node랑 yarn 설치하기
    • node.js 파일 업로드 모듈 정리(multer, connect-busboy) (중간저장 없이 업로드)
    • 크롬에서 캐시 비우기 및 강력 새로고침
    • 이중화 되어있는 웹서버로 ajax 호출하기
    songdev
    songdev

    티스토리툴바