1. git init
2. github에 Repository 생성 및 URL 복사
3. 원격저장소에 추가
git remote add origin https://github.com/jjinichoi/wetube-reloaded
4. npm init
5. 아래처럼 물어보는 것에 답하면 package.json 생성이 완료된다.
-package.json은 node.js 관련정보를 담는 방법
{
"name": "wetube",
"version": "1.0.0",
"description": "The best way to watch a videos.",
"main": "index.js", //프로젝트의 메인파일
"repository": {
"type": "git",
"url": "git+https://github.com/jjinichoi/wetube-reloaded.git"
},
"author": "Jini",
"license": "MIT",
"bugs": {
"url": "https://github.com/jjinichoi/wetube-reloaded/issues"
},
"homepage": "https://github.com/jjinichoi/wetube-reloaded#readme"
}
6. package.json 안에 main
은 내가 만들고 배포한 package를 다른 사람들이 설치하면 main
을 사용한다(이번 프로젝트에서는 필요없어서 json에서 지움)
7. 프로젝트의 메인 파일인 index.js를 생성한다.
1. package.json에 script
추가(script는 실행하고 싶은것을 말함)
{
"name": "wetube",
"version": "1.0.0",
"description": "The best way to watch a videos.",
"repository": {
"type": "git",
"url": "git+https://github.com/jjinichoi/wetube-reloaded.git"
},
"scripts": {
"win": "node index.js"
},
"author": "Jini",
"license": "MIT",
"bugs": {
"url": "https://github.com/jjinichoi/wetube-reloaded/issues"
},
"homepage": "https://github.com/jjinichoi/wetube-reloaded#readme"
}
2. 터미널에 프로젝트 폴더 안에 npm run win
명령어 실행
❗ 패키지 설치 전(npm install) 할 때 package.json를 닫거나 저장 후 설치(안그럼 버전 충돌 일어남)
1. express 패키지 설치
2. 패키지를 설치하면 node_modules에는 npm으로 설치한 모든 패키지가 저장된다.
3. node_modules 설치된 express폴더에 package.json에서 dependencies
는 express가 작동되려면 필요한 패키지들이 나열되어있고 필요한 패키지를 열면 계속 dependencies
로 체인처럼 연결되어있는 것을 알 수 있다.
4. npm i express
를 하면 express를 설치하는데 의존하고 있는 패키지가 있기 때문에 그것들도 같이 설치 해준다. 그런데 express가 의존하고 있는 패키지들도 다른 것들에 의존하기 때문에 많은 것들이 설치되는 것이다. 이 모드 과정은 npm이 알아서 해줌
5. 처음에 만든 package.json을 다시 보면 dependencies
이 추가되어 있음
6. 처음부터 package.json안에 5번이 입력되어있다면, npm패키지 설치 시 npm i express
처럼 일일히 다운 받지 않고 npm i
만 명령 하더라도, npm이 package.json을 보고 필요한 것만 설치를 한다,
7. 해당 기능은 다른 사람에게 패키지를 보낼때나 깃허브에 올릴때 node_modules를 올리지 않고.
package.json, index.js, package-lock.json만 올리면
세개만 받은 후 npm i
명령만 하면 해당 프로젝트에 사용된 버전 그대로 패키지를 다운 받을 수 있는 기능을 하기도 한다.
package-lock.json은 패키지들이 수정 됐는지 해시값으로 체크 해주고 안전하게 관리해준다.
8. node_modules 폴더가 깃허브에 올라가지 않게 숨기기
/node_modules
입력