반응형

1. npm


npm

 홈페이지 : https://www.npmjs.org/

js 패키지 포털

 확장 모듈(패키지) 검색

패키지 매니저


모듈

패키지 매니저 : npm

 모듈 설치, 삭제(확장 모듈)

 모듈 검색

 모듈 정보

 패키지 정보 작성



npm 주요 옵션

init 패키지 준비. package.json 생성

install 패키지에 필요한 모듈 설치

install [PACKAGE] 개별 패키지 설치

list 설치된 모듈 목록 보기

info 모듈 정보

search 모듈 검색

update 모듈 업데이트

uninstall 모듈 삭제



모듈 설치

  전역 설치

한번 설치로 모든 프로젝트에서 사용

라이브러리 폴더(lib/node_modules)

관리자 권한 필요. -g 옵션

  지역 설치

프로젝트마다 설치

현재 폴더 내 node_modules 폴더


설치된 모듈 목록

모듈 목록 보기

 npm list

 npm list async


모듈 검색

모듈 검색 : npm search

정보 보기 : npm info

모듈 업데이트

npm update [모듈명]

모듈 삭제

npm uninstall [모듈 이름]


전역 모듈

전역 모듈

 Node.js의 중앙 라이브러리에 설치 : lib/modules

전역 모듈 다루기

 npm 명령에 -g 옵션만 추가

 관리자 권한


전역 모듈 - 모듈, 전역 설치와 삭제

설치

 [sudo] npm install -g nodemon

삭제

 [sudo] npm uninstall -g nodemon


전역 모듈과 지역 모듈 중

지역 모듈 권장

 개발에 필수 라이브러리

 특정 버전 모듈에 의존적이 상황

유틸성(mocha, nodemon)은 전역 설치 권장



2.패키지 정보


패키지 설정 파일

 package.json

 npm init 으로 생성

 패키지에 대한 정보 입력


패키지 정보 파일 : package.json

{

 "name": "package_sample",

 "version": "1.0.0",

 "description": “패키지 설정",

 "main": "main.js",

 "scripts": {

 "test": "echo \"Error: no test specified\" && exit 1"

 },

 "author": "",

 "license": "ISC"

}


패키지 정보 중 의존성 정보

"dependencies": {

 "async": "^1.5.0",

 "jade": "^1.0.0"

},

"devDependencies": {

 "mocha": "^2.3.4"

},


패키지 정보 기록하기

 의존성 정보 기록 : npm install async --save 



패키지 의존성 정보 사용하기

 패키지 정보 파일에 기록된 모듈 설치/업데이트

npm install

npm update 


3. 확장 모듈 :nodemon


nodemon

소스 코드 수정 후 재시작

 동작 멈추기, 다시 시작

수정 후 자동 재시작

nodemon source.js


모듈 nodemon

설치

 글로벌로 설치

 관리자 권한 필요

[sudo] npm install -g nodemon

실행

odemon app.js


4, 모듈만들기


모듈 만들기

소스 코드 분리

 모듈

모듈 작성 방법

 module.exports

모듈 사용하기

 모듈 로딩 : require

 require('./greeting.js');

모듈 로딩 에러

 require('greeting.js');

 Error: Cannot find module 'greeting.js'


함수 exports

모듈 greeting.js

module.exports.goodMorning = function() {

 // 모듈 함수 기능 작성

}

exports.goodNight = function(arg, callback) {

 // module 생략 가능

}

사용하기

var greeting = require('./greeting.js');

greeting.goodMorning();


모듈 만들기

exports 하지 않은 함수는 사용 불가

function goodAfternoon() {

 console.log('goodAfternoon');

}

사용하기

var greeting = require('./greeting.js');

greeting.goodAfternoon();

에러

 TypeError: greeting.goodAfternoon is not a function


모듈 만들기

클래스 정의 exports

function BusDef() {

 this.take = function() {}

}

function MetroDef() {

 this.ride = function() {}

}

module.exports.Bus = BusDef;

exports.Metro = MetroDef; // module 생략 가능

사용하기

var Bus = require('./transport').Bus;

var bus = new Bus();

bus.take();


모듈 만들기

클래스 exports

function Exercise() {

 this.pushup = function() {}

}

Exercise.prototype.run = function() {

}

module.exports = Exercise; // module 생략 불가

사용하기

var Exercise = require('./exercise');

var exercise = new Exercise();

exercise.pushup();


모듈 만들기

객체 exports

var student = {

 hour : 0,

 study : function() {

 this.hour++;

 console.log(this.hour + '시간째 공부 중');

 }

};

module.exports = student;

사용하기

var you = require('./student.js');

you.study();


모듈 만들기

모듈은 캐쉬됨

var you = require('./student.js');

you.study();

you.study();

// 모듈 로딩

var him = require('./student.js');

him.study(); // 3시간째 공부 중

'Web development > Backend & Server' 카테고리의 다른 글

[NODE.JS]NODE 간단하게 살펴보기 2  (0) 2018.02.24
[NODE.JS]Node 간단하게 살펴보기 1  (0) 2018.02.22
[NODE.JS]NODE.JS 4일차  (0) 2018.01.08
[NODE.JS]NODE.JS 3일차  (0) 2018.01.04
[NODE.JS]NODE.JS 2일차  (0) 2018.01.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기