예를 들어 이틀 전에는 서명을 위해 hmac과 sha1을 사용해야 했는데, 상대적으로 사용하기 쉬운 모듈을 찾을 수 없었습니다. 이때 해당 기능을 직접 구현해야 합니다. 다 쓴 후에는 모듈로 묶어서 모두와 공유할 수 있는데, 이는 다른 사람들에게 도움이 될 뿐만 아니라 작은 성취감을 주기도 합니다. 다음으로 NodeJS 모듈을 캡슐화하고 다른 사람들과 공유하는 방법을 소개하겠습니다.
NPM(Node Package Manager, http://npmjs.org)은 NodeJS에 내장된 핵심 모듈 외에 다른 모듈의 설치, 제거 및 기타 관리 작업을 수행하는 모듈 관리 소프트웨어입니다. 모듈은 NPM을 통해 수행되어야 하며, 우리가 직접 작성한 모듈은 다른 사람들이 사용할 수 있도록 NPM에 게시되어야 합니다.
다음으로 매우 간단한 모듈 "hello"를 만듭니다. 이 모듈에는 콘솔에 "Hello name"을 출력하는 "name" 매개변수 제공이라는 한 가지 기능만 있습니다. 시작하기 전에 먼저 node와 npm을 설치해야 합니다. 설치 방법은 공식 홈페이지에 소개되어 있으므로 여기서는 자세히 설명하지 않겠습니다.
먼저 모듈의 기본 디렉터리로 "hello"라는 디렉터리를 만듭니다. 이 디렉토리에 들어가서 작업을 시작하십시오.
그런 다음 모듈의 핵심 코드를 작성합니다. 다음 세 줄만 있으면 됩니다.
exports.Hello = function ( name ) {
console.log( "Hello " name )
}
hello.js로 저장하세요.
각 NodeJS 확장 모듈에는 모듈 이름, 작성자, 버전 번호 등과 같은 모듈의 일부 기본 속성을 설명하는 데 사용되는 package.json 파일이 있습니다. package.json 작성 방법에 대한 자세한 지침은 "npm help json" 명령을 사용하여 볼 수 있습니다.
모듈의 기본 디렉터리에서 npm init를 실행하여 기본 package.json을 생성할 수 있습니다. 명령 프롬프트에 따라 순서대로 정보를 입력하면 됩니다. hello 디렉터리에서 npm init를 실행하고 관련 정보를 입력한 결과는 다음과 같습니다.
$ npm init
패키지 이름: (hello) //모듈 이름, npm init는 자동으로 현재 디렉터리 이름을 기본 이름으로 사용하므로 변경할 필요가 없습니다. 여기에서 직접 확인하세요.
설명: 모듈 작성 예 //모듈 설명
패키지 버전: (0.0.0) 0.0.1 //모듈 버전 번호, 사용자의 습관에 따라 결정할 수 있습니다.
프로젝트 홈페이지: (없음) //모듈이 있는 경우 여기에 입력하거나 비워둘 수 있습니다.
프로젝트 git 저장소: (없음) //모듈의 git 저장소, 선택 사항 . npm 사용자는 일반적으로 github를 git 저장소로 사용합니다
저자 이름: Elmer Zhang //모듈 작성자 이름
저자 이메일: (없음) freeboy6716@gmail.com //모듈 작성자 이메일
저자 URL: (없음) http://www.elmerzhang.com //모듈 작성자 URL
메인 모듈/진입점: (없음) hello.js //모듈의 입력 파일, 여기 hello.js가 있습니다.
테스트 명령: (없음) //테스트 스크립트, 선택 사항
어떤 버전의 노드에서 실행되나요? (~v0.5.7) * //종속 노드 버전 번호, 우리 스크립트는 모든 버전의 노드에서 실행될 수 있으므로 입력하세요. *
/home/elmer/hello/package.json에 쓰려고 합니다
// 다음은 생성된 package.json 파일의 내용 미리보기입니다
{
"author": "Elmer Zhang (http://www.elmerzhang.com)",
"name": "hello",
"description": "모듈 작성 예",
"version": "0.0.1",
"repository": {
"url": ""
},
"main": "hello.js",
" 엔진": {
"노드": "*"
},
"종속성": {},
"devDependency": {}
}
괜찮나요? ( yes) //위 내용이 맞는지 확인한 후 Enter를 눌러 바로 확인할 수 있습니다.
이 시점에서 모듈이 작성되었습니다. 이때 hello 디렉터리에는 hello.js와 package.json이라는 두 개의 파일이 있어야 합니다.
hello의 상위 디렉터리로 돌아가서 이 모듈의 설치를 테스트할 수 있습니다.
$ npm install hello/
hello@0.0.1 ./node_modules/hello
설치가 성공적으로 완료되었음을 나타냅니다. 간단히 테스트해 보세요.
$ 노드
> var Hello = require('hello').Hello
> 안녕하세요('world');
Hello world가 "Hello world"를 올바르게 출력합니다.
다음으로 NPM에 게시합니다.
먼저 NPM 계정이 있어야 합니다. npm adduser를 사용하여 등록할 수 있습니다.
$ npm adduser
사용자 이름: elmerzhang
비밀번호:
이메일: freeboy6716@gmail.com
세 간단한 단계로 하나의 NPM 사용자 등록이 성공했습니다.
마지막으로 hello 루트 디렉터리로 돌아가서 npm 게시를 실행합니다. 오류 메시지가 없으면 게시에 성공한 것입니다. http://search.npmjs.org/로 이동하여 살펴보세요. 모듈이 이미 "최신 업데이트" 열에 표시되어 있습니다.
이제 NodeJS 모듈이 NPM에 성공적으로 게시되었습니다. 그런 다음 npm 라이브러리에 액세스할 수 있는 모든 위치에서 npm install을 통해 모듈을 설치할 수 있습니다.