2021.04.27
node --version
or node -v
명령어를 입력해서 잘 설치되었는지 확인한다.CommonJS
를 채택하였고 현재는 독자적인 진화를 거쳐 CommonJS 사양과 100% 동일하지는 않지만 기본적으로 CommonJS 방식을 따르고 있다.module.exports
또는 exports 객체
를 통해 정의하고 외부로 공개한다. 그리고 공개된 모듈은 require
함수를 사용하여 임포트한다.node
명령어를 사용할 수 있다.node <filename>
명령어를 입력하면 실행이 된다.Module.exports 변수
require 파일명
npm (노드 패키지 매니저/Node Package Manager)
은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다
Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI(Command line interface)를 제공한다.
자신이 작성한 패키지를 공개할 수도 있고 필요한 패키지를 검색하여 재사용할 수도 있다.
npm js 홈페이지 - 다른사람이 만든 사용가능한 npm패키지(모듈)들을 찾아보고 검색할 수 있다.
npm install <package>
: npm install
명령어 뒤에 설치할 패키지 이름을 지정한다.
npm install
명령어는 지역(local)과 전역(global)설치 옵션이 있다. 옵션을 따로 지정하지 않을 시 지역으로 설치된다.node_modules
디렉터리가 자동 생성되고 그 안에 패키지가 설치된다. # 지역설치
$ npm install <package>
# 전역설치
$ npm install -g <package>
package.json
Node.js 프로젝트에서는 많은 패키지를 사용하게 되고 패키지의 버전도 빈번하게 업데이트되므로 프로젝트가 의존하고 있는 패키지를 일괄 관리할 필요가 있다.
package.json
파일을 통해서 프로젝트 정보와 패키지의 의존성(dependency)을 관리한다.
package.json
은 JAVA의 maven에서 pom.xml과 비슷한 역할을 한다.
package.json
을 생성하려면 npm init
명령어를 실행한다.
npm init
명령어를 사용하면 프로젝트에 대한 여러 가지 정보를 입력하도록 요구받는다.
이때 입력된 정보를 바탕으로 npm은 package.json 파일을 생성한다.
npm init
명령어에 --yes
또는 -y
옵션을 추가한다. 그러면 기본 설정값으로 package.json 파일을 생성한다.
npm init -y
{
"name": "",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"": ""
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
package.json
에서 가장 중요한 항목은 name
과 version
이다. 이것으로 패키지의 고유성을 판단하므로 생략할 수 없다.
npm init
시-y
옵션을 사용해 기본 설정값으로package.json
파일을 생성하면name
은 루트 프로젝트의 이름이 된다.
dependencies
항목에 해당 프로젝트가 의존하는 패키지의 이름과 버전을 명시함으로써 의존성을 설정한다.
의존하는 패키지란 프로젝트에서 참조하는 모듈을 의미한다.
devDependencies
에는 개발 시에만 사용하는 개발용 의존 패키지를 명시한다. (배포시에는 필요없고 개발시에만 필요한 패키지들을 명시)
npm install
명령어에--save-dev
(축양형-D
)옵션을 사용하면 devDependencies에 기록된다.$ npm install --save-dev <package> $ npm install -D <package>
package.json
에 명시된 모든 의존 패키지를 한 번에 설치하려면 터미널에 npm install
명령어를 입력한다.
npm install
명령어 뒤에 @버전을 추가하면 패키지 버전을 지정해서 설치가 가능하다.
$ npm install react@17.0.1
package.json
의 dependencies
에 새롭게 패키지가 추가되고 버전 앞에 ^
(캐럿)이 추가된 것을 확인할 수 있다.
^
(캐럿)은 이후 해당 패키지의 버전이 업데이트되었을 경우, 마이너 버전 범위 내에서 업데이트를 허용한다는 의미이다.
//package.json
"dependencies": {
"react": "^17.0.1"
},
npm 버전 정보는 메이저 버전 번호, 마이너 버전 번호, 패치 버전 번호로 구성된다.
버전 정보 앞에 기호를 부여하여 업데이트 범위를 지정할 수 있다.
표기법 | Description |
---|---|
version | 명시된 version과 일치 |
>version | 명시된 version보다 높은 버전 |
>=version | 명시된 version과 같거나 높은 버전 |
<version | 명시된 version보다 낮은 버전 |
<=version | 명시된 version과 같거나 낮은 버전 |
~version | 명시된 version과 근사한 버전 |
^version | 명시된 version과 호환되는 버전 |
~
(틸트)와 ^
(캐럿)의 차이
~
(틸트) : 패치 버전 범위 내에서 업데이트^
(캐럿) : 마이너 버전 범위 내에서 업데이트//package.json 생성
$ npm init
# 기본 설정
$ npm init -y
//패키지 설치
# 로컬 설치
$ npm install <package-name>
# 전역 설치
$ npm install -g <package-name>
# 개발 설치
$ npm install --save-dev <package-name>
# package.json의 모든 패키지 설치
$ npm install
//패키지 제거
# 로컬/개발 패키지 제거
$ npm uninstall <package-name>
# 전역 패키지 제거
$ npm uninstall -g <package-name>
//패키지 업데이트
$ npm update <package-name>
//package.json scripts 프로퍼티의 scripts 실행 (지정한 scripts명 입력)
$ npm run <script-name>
//전역 패키지 설치 폴더 확인
$ npm root -g
/usr/local/lib/node_modules
# 파인더 오픈
$ open /usr/local/lib/node_modules
//패키지 정보 참조
$ npm view <package-name>
//버전 확인
$ npm -v