npm이란 Node Package Manager의 약자로 NPM을 딴 단어이다. npm은 JavaScript 런타임 환경인 Node.js의 피키지를 관리해주는 패키지 관리자이다. npm을 이용하면 Node.js로 개발 할때 필요한 패키지와 라이브러리를 쉽게 설치하고 관리할 수 있게 도와주는 패키지 관리자이다.
1. 패키지 설치
: npm을 사용해 node.js에서 사용하는 다양한 오픈 소스 패키지를 설치할 수 있다.
1-1. 전역 설치 : 프로젝트 폴더를 따로 만들지 않고 npm install -g 명령어로 설치하면 g옵션은 global 옵션으로 폴더 안에서 한정되지 않고 전역에서 패키지를 사용할 수 있다.
1-2. 로컬 설치 : 프로젝트 폴더를 만들고 폴더 안에서 npm install 의 명령어로 작성하면, 만든 폴더 안에서만 npm의 패키지를 사용할 수 있다.
2. 의존성 관리
: npm init 명령어로 npm을 폴더에서 실행시키면 package-lock.json, package.json, node_modules 폴더가 생성된다.
이때 각각의 역할을 자세히 알아보자
1). package-lock.json : 프로젝트의 의존성 트리를 고정하여 일관성을 보장하고 설치 속도를 향상시킨다.
2). package.json : 프로젝트의 메타데이터와 의존성 정보를 포함하는 주요 설정 파일
3). node_modules : 설치된 모든 패키지와 그 의존성을 저장하는 디렉토리
npm install 명령어를 통해 의존성 관리를 시작하게 되고, package.json 파일이 있을때 npm install 명령어를 사용하면 모든 의존성이 한 번에 설치된다.
3. 스크립트 실행
: npm start 명령어를 실행하면 파일 스크립트에 정의된 명령어가 실행된다.
4. 패키지 퍼블리싱
: npm 패키지를 개발할때 npm 레지스트리에 퍼블리싱한 후 다른 사용자들이 사용할 수 있도록 배포할 수 있는 명령어로 npm publish를 사용할 수 있다.
-> 다음 사이트에 들어가서 회원가입을 한 후 , one time 인증을 마친다.
그 후 배포하고 싶은 폴더 ex). npm-daeun-deploy 와 같이 폴더를 만들고
npm init -y, npm install commander
명령어를 통해 설치를 해준다.
간단한 예제 코드를 쳐서 배포가 성공하는지 확인해 보자.
cli.js 파일
#!/usr/bin/env node
const { program } = require('commander');
program.action(cmd => console.log('✓ Running!!'));
program.parse(process.argv);
package.json 파일
{
"name": "impelfin-npm-deployment",
"version": "1.0.1",
"description": "",
"main": "index.js",
"bin" :{
"log-run" : "bin/cli.js"
},
"keywords": [
"npm-deploy"
],
"author": "",
"license": "MIT",
"files": [
"cli"
],
"dependencies": {
"commander": "^11.1.0"
}
}
npm link, log-run 명령어로 연결한 후
npm login 명령어로 터미널에서 npm에 로그인 성공 한 후
이때 Logged in as <아이디> on https://registry.npmjs.org/. 다음과 같은 출력이 나오면 성공 !!
npm publish 배포 후
npm notice
npm notice 📦 <package 이름>@1.0.1
npm notice === Tarball Contents ===
npm notice 147B bin/cli.js
npm notice 304B package.json
npm notice === Tarball Details ===
npm notice name: <package 이름>
npm notice version: 1.0.1
npm notice filename: <package 이름>-1.0.1.tgz
npm notice package size: 412 B
npm notice unpacked size: 451 B
npm notice shasum: d1b84699a43d1b0a9ec7f5cdc552640b03e9e631
npm notice integrity: sha512-jN2BoFvob2fWo[...]Qb/s+2K1zOfPQ==
npm notice total files: 2
npm notice
npm notice Publishing to https://registry.npmjs.org/
+ <package 이름>@1.0.1
npm install <package 이름>@ 을 이용해 설치에 성공하는 것을 확인할 수 있다.