본문 바로가기

Programming/Node.js

6. 패키지 매니저 (1) - npm [2]

node js logo image

 

 

 

 

우선 npm init을 실행했을 때 볼 수 있는 입력 값들의 종류에 대해서 살펴보겠습니다.

 

...
package name: (npmexample) npmtest
version: (1.0.0) 0.0.1
description: hello package.json
entry point: (index.js)
test command:
git repository:
keywords:
author: johndoe
license: (ISC)
...

 

  • package name : 패키지 이름으로, package.json의 "name" 속성 값이 됩니다.
  • version : 패키지 버전입니다. 별도로 살펴보겠습니다.
  • entry point : 자바스크립트 ㅅ실행 파일의 진입점입니다. 일반적으로 module.exports를 하는 파일을 지정합니다. "main" 속성 값이 됩니다. 
  • test command : 코드를 테스트할 때 사용하게 되는 명령어입니다. package.json "scripts"속성 안의 test 속성에 저장됩니다. 
  • keywords : 키워드는 npm 홈페이지에서 패키지 검색을 도와줍니다. "keywords" 속성에 저장됩니다. 
  • license : 패키지의 라이선스를 작성하게 됩니다. 

 

 

앞서서 npm init을 통해 생성한 package.json 파일을 다시 한번 살펴보겠습니다. 

 

{
  "name": "npmtest",
  "version": "0.0.1",
  "description": "hello package.json",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "johndoe",
  "license": "ISC"
}

 

"scripts" 속성은 npm 명령어를 저장해두는 부분입니다. 콘솔에서 npm run [스크립트 명령어]를 입력해 스크립트를 실행하게 됩니다. 예를 들어 [npm run test]를 실행하게 되면 echo \"Error: no test specified\" && exit 1를 실행하게 됩니다. 여기서 echo... 부분은 해당 스트링을 출력하라는 의미이고, exit 1은 에러와 함께 종료하라는 의미가 됩니다. 

 

$npm run test

> npmtest@0.0.1 test
> echo "Error: no test specified" && exit 1

"Error: no test specified"

 

 

참고로 scripts 속성에 test 외의 명령어 여러개를 두고 실행이 가능한데, 보통 start 명령어에 node [파일명]을 저장하고, npm start로 실행을 하게 됩니다. 참고로 start나 test 스크립트는 run 없이 npm test 만 실행해도 동일하게 동작합니다.