ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 제로부터 시작하는 Node.js - 8. 패키지 매니저 npm, 외부모듈
    내가 보기 위해 쓰는 것/Node.js 2019. 11. 6. 13:19

    이번에는 node.js가 제공하는 패키지매니저 사용법과 알아두면 좋은 몇가지 외부모듈에 대해서 알아보겠습니다.

    아래 개념은 알고 가셨으면 좋겠습니다.

     

    개념 설명
    npm init node.js 프로젝트 initialize
    npm install 패키지에 모듈 설치
    package.json node.js 프로젝트의 환경 설정 정보 파일

     

    1. 프로젝트 초기화

     

    node.js는 런타임 플랫폼 뿐만 아니라 npm이라는 강력한 패키지 매니저도 제공합니다.

    이번에는 이 npm이라는 패키지매니저를 중점으로 진행하겠습니다.

     

    먼저 프로젝트를 정의하는 것부터 시작하겠습니다.

     

    적당한 폴더를 준비하시고 터미널에서 그 폴더에 이동후 이렇게 입력해주세요.

     

    npm init

     

    우선 연습용이기도하고, 기본 값을 보기 위해 그냥 엔터를 눌러 진행합시다.

    그 후, 폴더에 가면 package.json 파일이 생겼을겁니다. 열어봅시다.

     

    {
      "name": "ex9",                                            // 프로젝트 명
      "version": "1.0.0",                                       // 프로젝트의 버전
      "description": "",                                        // 프로젝트 설명
      "main": "index.js",                                       // 패키지의 메인 파일
      "scripts": {                                              // 명령어를 요약 나열
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",                                             // 제작자를
      "license": "ISC"                                          // 라이센스
    }
    

     

    scripts만 조금 살펴보고 나머지는 차근차근 알아가보도록 합시다.

     

    우선 프로젝트가 있으니 js파일도 만들어봅시다. main에 index.js라 되어있으니 index.js로 만들겠습니다.

    간단한 서버를 만듭시다.

     

    const http = require('http')
    
    http.createServer(function (req, res) {
    
      res.writeHead(200, { 'Content-Type': 'text/html' })
      res.end('<h2>Hello</h2>')
    
    }).listen(3001, function () {
      console.log('server is running at http://127.0.0.1:3001')
    })
    

     

    평소처럼 실행하면 터미널에서 node index.js를 입력했을겁니다.

    package.json에 이렇게 행을 추가해줍시다.

     

    {
      "name": "ex9",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node index.js"
      },
      "author": "",
      "license": "ISC"
    }
    

     

    scripts에 start 라는 명령어가 추가되었습니다.

    주의하실 점은 test에 꼭 쉼표를 넣으셔야합니다. 마지막 요소를 제외한 모든 요소에 쉼표를 꼭 넣어주세요.

    저렇게 입력한 후 저장, 터미널에서 npm start를 입력해봅시다.

     

    마치 node index.js를 입력한 것처럼 작동합니다.

     

    pacakge.json의 속성은 기본으로 적힌 것 외에도 많이 있습니다만 여기선 언급하지 않겠습니다. 노드를 공부하다보면 차근차근 알아가게 되지 않을까요?

     

    2. 외부 모듈 설치

    외부 모듈 설치법을 알아보겠습니다.

    외부모듈 설치, 사용법은 굉장히 간단합니다.

     

    npm install 모듈명

     

    그 후 require해서 추출하면 끝입니다.

     

    ejs 라는 모듈로 예제를 하나 들어보겠습니다.

     

    ejs는 문서를 동적으로 생성할 수 있게 해주는 모듈입니다.

    우선 ejs라는 모듈의 기능보단 외부 모듈을 어떻게 설치하고 사용하였는지를 봐주세요.

     

    index.js

     

    const http = require('http')
    const fs = require('fs')
    const ejs = require('ejs')
    
    http.createServer(function (req, res) {
    
      fs.readFile('./index.ejs', 'utf8', function(err, data) {
        res.writeHead(200, { 'Content-Type': 'text/html' })
        res.end(ejs.render(data))
      })
    
    }).listen(3001, function () {
      console.log('server is running at http://127.0.0.1:3001')
    })
    

     

    index.ejs

     

    <% const name = 'Seongsoo' %>
    <h1><%= name %></h1>
    <% for (let i = 0; i < 10; i++) { %>
      <h2>i * i = <%= i * i %></h2>
    <% } %>
    

    JSP를 써보셨다면 ejs모듈이 어떤 모듈인지 단박에 아셨을거라고 생각합니다.

    ejs 모듈은 템플릿 엔진모듈이라하고, jade 라는 모듈도 있습니다.

    이 두 모듈은 각기 고유의 메서드와 형식이 있음으로 여기에 다 담아낼 순 없습니다. 동적으로 페이지를 생성해야 할 때가 보면 그 때 찾아보시길 바랍니다.

     

    다시 외부모듈 설치라는 주제로 돌아오겠습니다.

     

    이번에는 require를 필요로 하지 않고 쓰이는 전역 모듈을 알아보겠습니다.

    이런 전역 모듈, 서버 실행 모듈을 설치할 때는 -g 라는 옵션을 붙입니다. 이를 전역설치라고 합니다.

     

    supervisor라는 모듈을 통해 알아보겠습니다.

     

    supervisor 모듈의 기능을 간단하게 요약하고 넘어가겠습니다.

    node.js 로 공부하고, 개발하다보면 이런 상황이 자주 일어납니다.

     

    node.js 파일 내용을 변경해도 실행중인 서버에는 영향을 끼치지 못하기때문에, 종료하고 다시 실행하는 작업이 필연적으로 생기기 마련입니다.

    supervisor 모듈은 파일 변경사항을 자동으로 인식하여 실행종료후 다시 실행하는 기능을 가지고 있습니다.

     

    supervisor 모듈로 서버를 실행하고

     

     

    내용을 변경하면 자동인식하여 다시시작하게 됩니다.

     

    더 자세한 supervisor의 사용법이 궁금하다면 터미널에 supervisor를 입력하면 됩니다.

     

    다시, 모듈 설치라는 주제로 돌아오겠습니다.

    이번에는 모듈의 버전을 선택해서 저장하는 방법, 모듈 삭제 방법입니다.

     

    모듈 삭제법

     

    npm uninstall 모듈명

     

    버전을 선택하여 설치하는 법

     

    npm install 모듈명@2.3.1

     

    @ 후에 들어가는 숫자는 이렇게 쓸 수도 있습니다.

     

    npm install 모듈명@2.3 // 2.3하위 버전 중 최신버전을 설치

    npm install 모듈명@2   // 2 하위 버전 중 최신버전을 설치

     

    이제 ejs 모듈을 삭제하고, 버전을 선택하여 설치 하면서, 동시에 --save 옵션도 알아봅시다.

     

    --save 옵션을 사용하면 package.json에 설치된 모듈 정보가 명시됩니다.

     

    또 다른 기능으로는 파일변화를 보신 분이라면 아시겠지만 모듈을 설치하면 node_modules 라는 폴더에 설치됩니다.

    이 폴더는 대부분 무겁고 운영체재에 따라 다르게 빌드업되기 때문에 옮기는 것은 비효율적입니다.

     

    node_modules 폴더를 제외한 파일들을 옮긴 후 npm install을 입력하면 package.json을 읽어 적혀있는 모듈을 자동으로 설치해줍니다.

     

    이 글은 여기까지입니다. 다음 글은 express 모듈에 대해서 쓰겠습니다.

    댓글

Designed by Tistory.