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 |