본문 바로가기
IT/javascript

폐쇄망 npm 패키지 등록 및 이용하기

by 가능성1g 2024. 5. 14.
반응형

인터넷이 연결되는 환경에서 프로젝트를 생성하고 패키지를 다운로드해서 옮기는 방식입니다.

폐쇄망에는 넥서스3을 설치해서 이용합니다.

 

(인터넷 연결되는 환경)

1. yarn  설치

npm i -g yarn

 

2. 필요한 패키지가 담긴 프로젝트 생성 ( react -app )

yarn create react-app ods-sample

cd ods-sample

yarn add axios react-modal react-router-dom styled-components

 

3. .yarnrc 파일 만들고 아래 내용 넣기

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

 

4. node_modules 폴더 , yarn.lock 삭제

 

5. 캐시 삭제

yarn cache clean

 

6. 패키지 다시 받아오기

yarn install

 

7. npm_packages 압축해서 폐쇄망에 옮기기

 

(폐쇄망)

8. npm_packages 압축해제 후, 아래 스크립트를 이용해서 넥서스 등록

## publish 스크립트
vi publish.sh
---
#!/bin/bash

REPOSITORY=http://{ Nexus 주소 }:{ Nexus 포트(필요시) }/repository/{ repo 이름 }/
PACKAGES_PATH=./npm_packages

for package in $PACKAGES_PATH/*.tgz; do
    npm publish --registry=$REPOSITORY $package
done
---

## Nexus 로그인
npm login --registry http://{ Nexus 주소 }:{ Nexus 포트(필요시) }

## 스크립트 실행
chmod +x publish.sh
./publish.sh

 

9. 폐쇄망  리포지터리를 보도록 설정

npm config set registry https://리포지터리주소

 

10. 프로젝트의 package.json 파일을 이용해서  yarn install 실행

 

 

!!참고

폐쇄망에서 nodejs 설치시에는 환경들을 모두 제어하기 위해서 바이너리 파일을 받아서 압축해제 한후, 

환경변수를 설정해서 사용하는게 좋습니다.

 

1. nodejs 바이너리파일 다운로드

Node.js — Download Node.js® (nodejs.org)

 

Node.js — Download Node.js®

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

2. 압축해제

샘플) C:\study\node-workspace\bin\node-v20.12.2-win-x64 에 압축해제함

 

3. 필요폴더 (글로벌폴더 ) 생성

C:\study\node-workspace\bin\node-v20.12.2-win-x64\npm-global

C:\study\node-workspace\bin\node-v20.12.2-win-x64\npm-global-cache

 

4. 환경설정(글로벌)

npm config --global set prefix "C:\study\node-workspace\bin\node-v20.12.2-win-x64\npm-global"
npm config --global set cache "C:\study\node-workspace\bin\node-v20.12.2-win-x64\npm-global-cache"

 

5. PATH 설정

C:\study\node-workspace\bin\node-v20.12.2-win-x64

C:\study\node-workspace\bin\node-v20.12.2-win-x64\npm-global

C:\study\node-workspace\bin\node-v20.12.2-win-x64\npm-global\bin

3개 추

 

이제 npm i -g  같이 글로벌 설정하여 설치하는 프로그램들은 4의 환경에 설치가 되니 폐쇄망으로 환경을 옮길때 통으로 옮겨서 사용하도록 합니다.

 

참고 링크들

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

 

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

프로젝트를 진행하다 보면 종종 인터넷이 안되는 환경에서 작업해야하는 경우가 있다. npm은 온라인에서 패키지를 받아오는데, 인터넷이 안되는 환경에서는 패키지 다운로드를 할 수 없다. 그렇

songdev.tistory.com

 

[Nexus] 폐쇄망에서 Nexus 운영하기(feat. npm build) (velog.io)

 

[Nexus] 폐쇄망에서 Nexus 운영하기(feat. npm build)

포스팅 이유 이전 포스팅에서 폐쇄망에 Nexus를 구축하는 방법을 알아봤고, 이번 포스팅에서는 폐쇄망에서 Nexus를 어떻게 운영할 지(패키지 관리, 소스 빌드, Proxy설정) 알아보고자 함 1. 패키지 관

velog.io

설치된 라이브러리가 많은 프로젝트의 npm registry 변경하기 with package-lock.json 이해 | 아웃풋 트레이닝 (baek.dev)

 

설치된 라이브러리가 많은 프로젝트의 npm registry 변경하기 with package-lock.json 이해 | 아웃풋 트레

최근 회사에서 N년 이상 성숙된 프로젝트의 npm registry를 사내 registry로 변경하는 업무를 진행했다. 정석대로 프로젝트내 npm registry를 변경하고 npm i로 package-lock.json 을 재생성했지만 의존성 변경

baek.dev

 

반응형