코드/Npm

[npm] 사용자 로컬 경로 사용하여 다른 npm 라이브러리 설치

Yeah-Panda 2023. 11. 28. 23:44

외부 라이브러리 설치시 로컬에 개발된 패키지를 로컬 경로를 이용해 설치할 수 있다.

 

custom-package 폴더에 다음과 같은 파일이 있다고 가정

Logger.js

/*
Custom-package 폴더
*/

// Logger.js
function infoLog(level, message) {
    process.stdout.write(`${level}: ${message}`);
}
export class Logger {
    debug(message) {
        infoLog('Debug', message);
    }

    info(message) {
        infoLog('Info', message);
    }

    error(message) {
        infoLog('Error', message);
    }
}

 

index.js

// index.js
import {Logger} from './Logger.js';

new Logger().degug('커스텀 패키지의 Index.js 파일에서 발생한 메세지입니다')

export default Logger;


// ===================================================
// package.json
/*
* es6 import, export 를 사용하기 위해 type: module 선언이 필요
*/
"type": "module"

 

위 패키지를 사용하기 위해 다음과 같이 설치한다

# npm i {custom-package 폴더 경로}

# 예시
npm i --save /Users/UserName/custom-package

# 실제로 사용한 예시(워크스페이스 아래 패키지)
npm i --save /Users/UserName/npm-workspace/packages/client

 

위와 같이 설치시 package.json 파일 

"type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "client": "file:../npm-workspace/packages/client",
  },

 

위와 같이 설치된 것을 확인 할수 있으며

 

custom-project 폴더내 index.js 파일에서 다음과 같이 사용 가능하다

import Logger from 'client';

new Logger().debug('이 메세지는 커스텀 프로젝트에서 발생 시킨 메세지입니다.');

 

node index.js

# Debug: 이 메세지는 커스텀 패키지의 Index.js 파일에서 발생한 메세지입니다
# Debug: 이 메세지는 커스텀 프로젝트에서 발생 시킨 메세지입니다.

 

아주 간단한 예시며 실제로 빠르게 개발하며 테스트하기 용이 하다. 

물론 패키지의 타입 선언도 필요하고 실제 배포 환경에서는 빌드된 결과물이 필요하다.