JS가 동작할 수 있는 곳
- 웹브라우저
- 로컬 ⇒ NodeJS을 설치해서 실현
- Node.js : JS런타임, 즉 JS가 로컬에서 동작할 수 있는 환경
- npm(패키지 관리), npx(패키지 실행) 등을 사용할 수 있음
npx
: 패키지를 로컬에 설치(npm install)하는 것 대신에, 메모리상에서 일시적으로 설치해서 실행
노드 버전 관리
- node.js 홈페이지에서 node.js를 다운받을 수 있지만 다운받은 그 버전만 계속 쓸 수 있음
- (Node Version Manager) : 노드버전을 자유롭게 바꿀 수 있게 함
- but. node.js에서 다운받지 않았을 경우에만 사용 가능
curl -o-
https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh
| bash
로 nvm 설치nvm ls
⇒ 가능 버전 리스트nvm use 버전
⇒ 특정 버전으로 바꿀 수 있음
- : “node.js를 이미 설치한 환경”에서 node 버전을 자유롭게 바꿀 수 있게 함
npm install -g n
- npm : node.js 설치 시 같이 설치 되는 패키지 매니저
- 참고) yarn은 npm과 유사한 패키지 매니저이다. npm과 거의 동일하다고 보면 됨
- install 대신에 i, add로 대체 가능 ↔ uninstall, un
- -g : global, 이제 n이라고만 해도 바로 명령어 사용 가능
n 버전
: node.js 설치n
: 설치한 node.js 버전들 중 골라서 바꿀 수 있음
vue 프로젝트 만들기
- 이 때까지는 cdn을 통해서 원격에서 vue.js를 가져왔다면, 이제는 vue를 로컬에 설치해서 사용할 것이다!
npm init
: 프로젝트(=패키지) 초기화npm init -y
: 여러 세부사항을 정하지 않고 바로 프로젝트 생성- package.json에서 세부사항을 수정할 수 있다
npm install vue
⇒ 최신 vue 패키지 설치- 버전은
npm info 패키지
로 확인 가능 npm install 패키지@버전
으로 특정 버전으로 다운받을 수 있음- package.json에 dependencies(일반 의존성)로 vue가 추가됨
- node_modules에 vue를 포함한 dependencies에 있는 패키지들이 추가됨
- package.json은 패키지마다 있으므로.. node_modules는 매우 많은 양의 파일들이 있다
- /package.json ⇒ “main”은 외부에서 패키지를 접근할 때(ex. npm으로 패키지 설치) 진입점을 말하는데, 일반적인 웹 프로젝트에서는 vue패키지의 main을 사용하므로, 의미가 없음 ⇒ 지워도 무방
serve 패키지 설치하기(일반 js 실행)
npm i serve -D
⇒ npx로 빠른 실행 말고, serve 패키지를 로컬에 설치! (규모가 큰 프로젝트를 위함)- serve : 개발 서버에서 정적 사이트를 실행하는 패키지
- -D : 해당 패키지를 개발할 때만 쓰겠다고 선언(== —save-dev)
⇒ devDependencies(개발 의존성)에 serve가 추가됨
- 전역 설치(-g)를 하지 않았기 때문에, 명령어를 등록해줘야 실행할 수 있다
- package.json의 scripts에서 명령어를 추가해 쓸 수 있다
npm run 명령어
로 실행
- index.html이 항상 root 폴더에 있어야 한다..
Caret Ranges와 package-lock.json
- Caret Ranges(^)
- 해당 패키지가 설치될 때, 명시된 버전에서 메이저 버전이 같은 항상 최신 버전을 설치함
- ex. ^1.0.0 == 1.0.0 ~ 1.9.9
- 이 때문에 프로젝트를 이용하는 로컬마다 패키지가 다르게 설치될 수 있다
⇒ package-lock.json로 해결!
- package-lock.json
- 프로젝트의 node_modules나 package.json이 수정되는 경우 생성되거나 업데이트 됨
- 파일이 생성되는 시점의 의존성 트리에 대한 정확한 정보를 가지고 있음
- 즉, 맨 처음 생성됐을 때 설치된 버전이 명시되어 있어서 항상 그 버전이 설치되어서 버전이 달라 생길 수 있는 에러를 방지.
- node_modules가 없어도 의존성 패키지가 설치될 수 있게 해서, 언제나 node_modules가 생성
.gitignore
- node_modules가 없을 때 package-lock.json와 package.json만 있으면 npm install로 다시 생성 가능
그래서, git에 node_modules를 업로드 하지 않아도 된다 ⇒ .gitignore에 명시
- .gitignore : git에 업로드 하지 않을 파일이나 폴더를 명시
- .gitignore에 명시하면 좋을 파일들
- node_modules/
- .vscode/ (⇒ 마지막에 연 탭, 터미널 등 vscode 정보를 담고 있음)
- .DS_Store/ (Mac일 때만)
node_modules/ .vscode/ .DS_Store/