외부 라이브러리 설치시 로컬에 개발된 패키지를 로컬 경로를 이용해 설치할 수 있다.
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: 이 메세지는 커스텀 프로젝트에서 발생 시킨 메세지입니다.
아주 간단한 예시며 실제로 빠르게 개발하며 테스트하기 용이 하다.
물론 패키지의 타입 선언도 필요하고 실제 배포 환경에서는 빌드된 결과물이 필요하다.
'코드 > Npm' 카테고리의 다른 글
[Npm] dotenv, cross-env (0) | 2024.01.10 |
---|---|
[npm] npm outdated, npm doctor (0) | 2024.01.08 |
[Npm] .npmignore (0) | 2023.12.14 |
[NPM] private registry 설정 및 퍼블리시 verdaccio (0) | 2023.12.13 |
[npm] 모노레포를 위한 기본적인 워크 스페이스 지식 (1) | 2023.11.24 |