티스토리 뷰
NPM = Node Package Manager(or Module)
Node.js 에서 패키지를 관리하는 명령어 라고 한다. Node.js 초창기에는 Node.js 와 NPM을 따로 설치 하였으나, 현재는 Node.js 설치시 NPM이 같이 설치 된다.
node.js 는 https://nodejs.org/ko/ 에서 운영체제 별로 다운로드 받을 수 있다.
npm 명령어의 자세한 설명은 https://docs.npmjs.com/cli/v8/commands/npm 를 참고 하기 바란다.
1. node.js 및 npm 버전 확인
freecatz:~ $ node -v
v14.17.6
freecatz:~ $ node --version
v14.17.6
freecatz:~ $ npm -v
8.9.0
freecatz:~ $ npm --version
8.9.0
2. npm 업그레이드
아래의 명령어는 설치된 npm 을 제거 하고 다시 설치 한다.
freecatz:~ $ sudo npm install -g npm
3. npm 초기화
프로젝트 디렉토리를 생성 한뒤, 해당 디렉토리로 이동 하여 아래의 명령어를 실행 한다.
freecatz:~ $ mkdir npm-test && cd npm-test
freecatz:npm-test $ pwd
/Users/freecatz/npm-test
freecatz:npm-test $ ls -al
total 0
drwxr-xr-x 2 freecatz staff 64B May 12 08:17 ./
drwxr-x---+ 15 freecatz staff 480B May 12 08:19 ../
# 아래의 명령어 실행 후, 몇가지 입력 해야 하는 부분은 엔터 키로 기본값을 넣거나, 필요한 내용을 직접 입력 하면 된다.
freecatz:npm-test $ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help init` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (npm-test) <Enter>
version: (1.0.0) <Enter>
description: <Enter>
entry point: (index.js) <Enter>
test command: <Enter>
git repository: <Enter>
keywords: <Enter>
author: <Enter>
license: (ISC) <Enter>
About to write to /Users/freecatz/npm-test/package.json:<Enter>
{
"name": "npm-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Is this OK? (yes) <Enter>
freecatz:npm-test $ ls -alh
total 8
drwxr-xr-x 3 freecatz staff 96B May 12 08:26 ./
drwxr-x---+ 15 freecatz staff 480B May 12 08:19 ../
-rw-r--r-- 1 freecatz staff 204B May 12 08:26 package.json
위와 같이 package.json 파일이 생성 되었는지 확인 한다.
4. 패키지 검색
npm 으로 설치할 수 있는 패키지를 검색 한다.
ex) npm search <패키지 이름 또는 검색어>
freecatz:npm-test $ npm search vue
5. 패키지 정보 확인
npm 으로 설치할 수 있는 패키지의 정보를 확인 한다.
ex) npm info <패키지 이름>
freecatz:npm-test $ npm info vue
vue@3.2.33 | MIT | deps: 5 | versions: 372
The progressive JavaScript framework for building modern web UI.
https://github.com/vuejs/core/tree/main/packages/vue#readme
keywords: vue
dist
.tarball: https://registry.npmjs.org/vue/-/vue-3.2.33.tgz
.shasum: 7867eb16a3293a28c4d190a837bc447878bd64c2
.integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==
.unpackedSize: 2.5 MB
... 길어서 중략 ...
6. 패키지 설치
npm 으로 패키지를 설치 한다.
ex) npm install <패키지 이름>
* 참고
-g 옵션으로 설치한 패키지의 경우 시스템 전역에 설치 되어, 다른 프로젝트에서도 사용 할 수 있게 된다고 한다.
node 가 설치된 디렉토리의 lib 아래 node_modules 에 설치가 된다.
본인의 경우 /Users/freecatz/devel/node/node-v16.15.0-darwin-x64/lib/node_modules 에 설치 됨.
--save 옵션은 '--production' 빌드시 해당 패키지가 포함 된다고 한다. 입력 하지 않은 경우 기본값으로 보인다.
--save-dev 옵션은 '--production' 빌드시 해당 패키지가 포함 되지 않고 빌드 된다고 한다.
현재 이 문서는 빌드 및 배포를 고려 하지 않으므로 '--save-dev' 옵션을 사용할 것이다.
freecatz:npm-test $ npm install vue --save-dev
freecatz:npm-test $ cat package.json
{
"name": "npm-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"vue": "^3.2.33"
}
}
이전에 없었던 'devDependencies' 항목에 'vue' 패키지가 추가 되었다.
'--save-dev' 옵션을 사용 하지 않은 패키지의 경우 'dependencies' 라는 항목에 추가 된다.
7. 설치된 패키지 목록 확인
npm 으로 시스템 전역에 설치된 패키지를 확인 한다.
freecatz:npm-test $ npm ls -g
또는
freecatz:npm-test $ npm list -g
/Users/freecatz/devel/node/node-v16.15.0-darwin-x64/lib
+-- corepack@0.10.0
+-- npm@8.10.0
`-- vue@3.2.33
npm 으로 현재 프로젝트에 설치된 패키지를 확인 한다.
freecatz:npm-test $ npm ls
또는
freecatz:npm-test $ npm list
npm-test@1.0.0 /Users/freecatz/npm-test
`-- vue@3.2.33
8. 패키지 삭제
npm 으로 설치된 패키지를 삭제 한다.
ex) npm uninstall <패키지 이름>
-g 옵션을 이용하게 되면 시스템 전역에 설치한 패키지를 삭제 한다.
freecatz:npm-test $ npm uninstall vue
freecatz:npm-test $ cat package.json
{
"name": "npm-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
- Total
- Today
- Yesterday
- place
- devel
- ssh
- MySQL
- Mobile
- springboot
- food
- SSL
- kotlin
- Security
- json parse
- Review
- gpkiapi
- samba
- 엘리스센터
- Flutter
- Spring
- HTTP
- Linux
- Compile
- Android
- development
- Fun
- Java
- TIP
- JavaScript
- devtools
- 맛집
- web
- dart
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |