모듈과 NPM - npm 설치 및 사용

|

모듈과 NPM - npm 설치 및 사용

생활코딩 Node.js 강의
에플리케이션에서 부품으로 사용할 로직인 모듈에 대해서 알아보고 모듈을 편리하게 관리하는 기술인 NPM을 사용하는 기본적인 방법을 알아본다.

npm 소개

  • npm = Node Package Manager
  • Nodejs은 다양한 모듈을 제공한다.
    • Nodejs 시스템 에서만 쓸수 있는 모듈 (ex. HTTP, OS)
    • Javascript 라는 언어가 제공하는 모듈 (ex. Date, String, Array, Math)
  • npm은 Node 계의 앱스토어!
    • 모듈의 설치, 삭제, 업그레이드, 의존성 관리
  • npm은 다른 사람의 sw를 가져와서 연결시키는 연결자의 역할을 하고 있다. 따라서 nodejs 생태계의 중심에는 npm이 있다고 할 수 있다.
  • npm 사이트

npm 앱 설치 예시

  • npm 소프트웨어 패키지의 종류
    • 부품 모듈
    • 독립적으로 동작하는 앱

npm으로 독립적으로 동작하는 앱 설치 - uglify-js

npm을 사용해서 nodejs로 만들어진 sw를 사용하는 방법

  • npm 사이트에서 uglify-js 검색
  • install (터미널)

    npm install uglify-js -g // -g 는 global의 약자, 컴퓨터 전역에서 사용하는 독립적인 sw로 사용
    npm install uglify-js // local로 간주, 현재 프로젝트 안에서 부품으로 사용
    
  • pretty.js 파일 작성

    function hello(name){
      console.log('Hi,'+name);
    }
    
    hello('siwa');
    
  • uglify-js 실행
    • 사용방법 npm 패키지 문서
      • Usage : uglifyjs [input files] [options]
      • options 예시
        • -o, –output : Output file (파일저장)
        • -m, –mangle : Mangle names/pass mangler options (변수명을 1글자로 변경)
      • 실행 (터미널)

        $ uglifyjs pretty.js -m -o pretty.min.js
        
        
      • 결과 (pretty.min.js 파일 내용)

        function hello(l){console.log("Hi,"+l)}hello("siwa");
        
        

npm으로 부품 모듈 설치 - underscore

다른사람이 만든 소프트웨어(모듈)을 자신의 소프트웨어의 부품으로 사용하는 방법

  • npm 사이트에서 underscore 검색

  • 모듈 설치전 준비사항 (프로젝트 폴더의 npm 패키지 초기화)
    • npm을 설치할 프로젝트 디렉토리 자체를 npm의 패키지로 먼저 지정
      • 터미널에서 프로젝트 폴더로 이동 후 npm init 입력
      • entry point : 만든 패키지에 여러가지 js 파일이 있을 수 있는데, 그 중에서 어떤 파일이 해당 패키지를 구동시키는 js 인지 지정 (나중에 변경 가능) > 해당 정보는 package.json에 저장됨
      • npm init을 통해 npm의 패키지로 지정한 프로젝트 디렉토리는 www.npmjs.com에 등록하여 배포할 수 있게됨
  • 모듈 설치 (터미널)
    • npm install underscore --save
      • –save 옵션(플래그)를 붙여서 입력
      • –save 옵션을 통해 package.json 안에 dependencies(의존성) 항목으로 명시적으로 추가 됨
        "dependencies": {
            "underscore": "^1.8.3"
          }
        
      • dependencies가 있으면 새로운 폴더에 프로젝트를 다시 시작한다고 해도 해당 dependencies가에 해당되는 모듈을 쉽게 가져올 수 있음
      • 어떠한 모듈을 항상 프로젝트에 포함시킬때는 **--save 옵션을 넣는게 좋음**
      • 일시적으로 사용하는 모듈은 –save 옵션 필요 없음
    • npm은 underscore 패키지를 다운로드 받아서 프로젝트 폴더 안에 포함시킴 (/node_modules/underscore)

모듈 사용법 - underscore

다른사람이 만든 소프트웨어(모듈)을 자신의 소프트웨어의 부품으로 사용하는 방법

  • underscore 는 아주 유명한 라이브러리 underscore 가이드문서
  • underscore.js 문서 작성
    • require() 함수를 통해 underscore 라이브러리 적용
var _ = require('underscore');
// require 함수를 통해 underscore 모듈을 가져와서 객체를 리턴한다.
// 리턴한 객체를 변수 _ 에 담는다.

var arr = [3, 5, 9, 1, 12];

console.log(arr[0]); // 3
console.log(_.first(arr)); //3
// 자바스크립트가 가진 배열의 underscore 라이브러리가 기능을 보충하는 역할
console.log(arr[arr.length-1]); // 12
console.log(_.last(arr)); // 12