[멋사 프론트엔드 부트캠프 14기] NPM / package.json / live-server
NPM
- Node Package Manager로, 자바스크립트 프로그래밍 환경에서 패키지를 설치하고 관리하는 도구이다.
- 주로 Node.js 환경에서 사용
- 다양한 패키지 손쉽게 설치하고 관리할 수 있고, 다른 개발자들이 만든 패키지를 내 프로젝트에 쉽게 추가하고, 의존성 관리를 간편하게 할 수 있다.
- 또한, 자신이 만든 패키지를 다른 사람들과 공유하고 배포할 수도 있다.
- npm | Home < 여기서 다양한 패키지를 제공하고 있다.
- NPM은 Node.js를 설치하면 함께 설치된다.
- 설치여부와 버전을 확인하기 위해서는 다음의 명령을 입력한다.
# 설치 여부 및 버전 확인
npm --version
npm -v
# 업데이트
npm install --global npm@latest
npm i -g npm@latest
| NPM을 활용하여 패키지 설치
# 전역(Global)으로 설치
npm install --global 패키지명
npm i -g 패키지명
# 로컬(local)로 설치
npm install 패키지명
npm i 패키지명
+ 깃허브 주소를 클론 해왔을 때, 패키지 장부(pacage.json)에 등록된 패키지를 등록하기 위해서는 그냥 npm i 를 해주면 알아서 장부 속 패키지를 설치해 준다!
| NPM을 활용하여 패키지 삭제
# 전역(Global)에 설치된 패키지 삭제
npm uninstall --global <패키지명>
npm un -g <패키지명>
# 로컬(Local)에 설치된 패키지 삭제
npm uninstall <패키지명>
npm un <패키지명>
https://www.npmjs.com/package/degit 패키지를 한 번 깔아보자!
- degit 패키지는 Github과 같은 Git 저장소에서 프로젝트를 복제할 때 사용할 수 있는 도구이다.
주요 기능
- 빠른 복제: 필요한 파일만 가져와서 빠르게 프로젝트를 설정
- Git 기록 없음: 복제한 프로젝트에는 Git 기록이 포함되지 않으므로, 깔끔한 상태로 시작할 수 있다.
- 템플릿 생성: 다양한 프로젝트 템플릿을 쉽게 가져와서 새로운 프로젝트를 시작할 수 있다.
npm install -g degit # degit 패키지 설치
npm list -g # 전역(global)으로 설치된 Node.js 패키지 목록
# Github 저장소에서 원하는 폴더를 로컬의 디렉토리에 복제하는 명령어
degit Github경로 폴더명 # 이게 안되면 아래의 명령어를 입력해보자.
npx degit Github경로 폴더명
package.json
= 패키지를 관리하는 장부
- Node.js 프로젝트에서 사용되는 메타데이터 파일
- 프로젝트의 이름, 버전, 의존성 패키지 정보 등을 포함
- package.json 파일은 프로젝트의 루트 디렉터리에 위치하며, npm init 을 통해 초기화하거나 수동으로 작성할 수 있다.
- npm 을 사용하여 패키지를 설치하면, 자동으로 package.json 파일에 의존성 정보가 업데이트된다.
+ 원래 패키지를 깔면 pacakage.json이 자동으로 깔리는데, 사람에 따라 자동으로 깔리지 않는 경우가 있어서 미리 package.json을 만들어두기도 한다.
| 역할
| 의존성 관리 | package.json 파일에는 프로젝트가 의존하는 외부 패키지들의 정보가 포함되기에 프로젝트를 다른 환경에 배포할 때, 해당 환경에서 필요한 패키지들을 쉽게 설치 가능 |
| 스크립트 정의 | 프로젝트에서 사용되는 스크립트들을 정의할 수 있다. ex) 테스트 실행, 빌드, 서버 실행 등의 스크립트 |
| 프로젝트 정보 제공 | 프로젝트의 이름, 버전, 설명 등의 정보를 포함하여 다른 개발자들이 프로젝트를 이해하고 사용할 수 있도록 한다. |
| 프로젝트 배포 정보 | 만약 자신의 패키지를 NPM 등의 패키지 관리 도구를 통해 배포하고자 하면, 해당 패키지의 정보를 package.json 파일에 포함시켜야 한다. |
▶ 프로젝트를 배포할 때, 만약 패키지 정보를 package.js에 포함시키지 않는다면?
- 패키지 설치가 불완전하거나 실패될 것이고, 버전 관리에 문제가 생기며, 배포 및 관리의 어려움이 있고, 협업 시 혼란이 생길 것이다.
live-server
(https://www.npmjs.com/package/live-server)
- Live Reload 기능을 갖춘 개발 서버이다.
- VS Code의 확장 프로그램으로 설치하거나 프로젝트 폴더에 로컬(local)로 설치하여 사용할 수 있다.
- 전역 설치 말고, 로컬로 설치하여 사용하는 것이 협업에 유리하다.
1. learn-node라는 폴더 하위에 src 폴더를 생성하고 해당 폴더에 index.html 파일도 생성한다.
mkdir src
touch src/index.html
2. index.html 파일에 다음의 코드를 추가한다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>NPM 패키지 설치(live-server)</title>
</head>
<body>
<h1>live Server 실행</h1>
</body>
</html>
3. learn-node라는 폴더에 live-server 패키지를 로컬로 설치한다.
npm i -D live-server
4. live-server 실행을 위해 터미널 창에 다음 명령을 입력한다.
npx live-server src --port=8080 --host=localhost --no-browser
문제는 live-server를 실행할 때마다 위의 코드를 입력해야 한다는 것...
그렇지만 이 번거로움을 해결할 수 있다!!
바로 nmp 스크립트 명령으로 등록하여 실행하는 것이다.
4.1. package.json에 다음의 코드를 추가한다.
"scripts": {
"dev": "live-server src --port=8080 --host=localhost --no-browser"
},
- scripts 안에 명령으로 만들고자 하는 것을 넣으면 된다.
- 원랜 live ~~ 부분을 터미널에서 실행하려면 npx를 앞에 무조건 써야 하는데, 스크립트에서는 npx를 안 써도 된다.
- 'src'는 index.html이 있는 폴더가 루트가 되어 해당 부분에 폴더명이 작성되는데, 만약 현재 폴더에 index.html이 있다면 해당 코드에서 scr가 아니라 .이 나올 것이다.
4.2. npm 스크립트 명령을 사용하여 five-server를 실행한다.
npm run dev
[live-server.json]
- live-server.json 파일을 생성하여 live-server의 root, port, host 등 환경 구성에 대한 값을 별도로 관리할 수 있다.
var liveServer = require("live-server");
var params = {
port: 8080,
host: "localhost",
root: "/src",
open: false,
file: "index.html",
};
liveServer.start(params);
}
[package.json]
- live-server.json 파일이 구성된 경우
"scripts": {
"dev": "live-server"
},