이상학의 개발블로그

[Node.js] Npm에 소스코드 배포하기 본문

JavaScript/Node.js

[Node.js] Npm에 소스코드 배포하기

학학이 2016. 6. 21. 16:41

하계 인턴 모집 공고 자기소개서 문항중에 코딩 문제가 있었다.

주어진 조건으로 문제를 풀고 제출하라는데 GitHub에 올려도 되고 개발 언어는 자유라고 명시되었었다.

Node.js로 하기로 마음을 먹고 개발을 했다. 

근데 대부분이 Java로 할거고 Node.js로 만든 소스코드를 실행하기 힘들수도 있다고 생각하여

Npm에 올리고 쉽게 다운 받을 수 있게 만들어 봤다. https://www.npmjs.com/package/nts-recordmaker


예전에 publish 한 과정을 다시 포스팅하면서 복습한다.


전체 과정

  1. github 계정 만들기
  2. npm 계정 만들기
  3. 만들고자 하는 모듈 디렉터리 만들기 ( $ mkdir npmtest )
  4. $ npm init
  5. 모듈 코딩
  6. $ npm adduser
  7. $ npm publish







GitHubNPM 계정이 먼저 있어야한다.

모듈로 쓸 디렉토리를 만들고 해당 디렉토리 안에서

$ npm init을 해줍니다. 직접 작성하지 않고 그냥 엔터치면 기본 값이 들어간다.

name : npm에서 찾아질 이름 ( npm에서 유일!! )

git repository : 소스 코드를 올릴 레포를 입력




npm은  GitHub와 함께 관리하는 것이 좋다.

소스코드를 계속해서 Github에 버전관리하고

마지막 Push 후 Npm에 배포하는 방법을 선택한다.






현재  npm에는 저번에 만든 인턴 소스코드 1개가 있다.







$ npm init 하고 소스코드와 README.md 파일을 추가했다.

그것을 다시 GitHub에 올렸다. 이게 배포될 소스이다.

꼭 GitHub에 올려야 하는건 아닌데 

GitHub과 Npm의 코드가 일치되는 것이 좋을 것 같다.








모든 소스 코드를 GitHub에 올리고 이제 Npm으로 배포를 하기 위해

Npm 정보를 입력한다.

$ npm adduser







원래는 업로드가 되어야 하는데 에러가 발생했다.

you do not have permission to publish "npmtest". Are you logged in as the correct user? : npmtest

npm은 GItHub와 다르게 모듈명 앞에 사용자명이 들어가지 않기 때문에 모든 모듈명이 유일해야한다.

이미 npmtest라는 모듈명을 올린 사용자가 있어서 거절당했다.

pageage.json 에 name을 npmtest-ryand으로 변경했다.



$ npm publish  하니 잘 올라간다.

이제  $ npm install npmtest-ryan 하면 만든 모듈을 다운 받을 수 있다. 




 Npm은 publish할 때 이전과 버전이 같으면 안된다.

자잘한 업데이트는 package.json에서 version에 1.0.1 등으로 patch 버전을 계속 올리면서 publish 해야한다.


Comments