본문 바로가기
프로그래밍/node.js

간단하게 npm 패키지 배포하기

by dryadyou 2021. 8. 14.
반응형

npm 패키지 배포하기

1. npm에 로그인한다.

  $ npm login

 

2. npm 패키지명을 정한다.

중복된 이름은 사용 할 수 없기 때문에 내가 정한 이름이 존재하는지 확인해본다.
# npm 사용할때
$ npm info hello-dryadsoft
npm ERR! code E404
npm ERR! 404 'hello-dryadsoft' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! 404
npm ERR! 404  'hello-dryadsoft@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
...

# yarn 사용할때
$ yarn info hello-dryadsoft

yarn info v1.22.10
error Received invalid response from npm.
Done in 0.89s.
npm info 패키지명을 검색해서 위와 같이 오류가 발생하면 존재하지 않는 것이다.

 

3. 패키지 생성하기

새로 생성할 패키지명과 같은 폴더명을 만든다.
생성된 폴더 안에 npm 또는 yarn을 사용하여 package.json파일을 만들어준다.
$ mkdir hellow-dryadsoft
$ cd hello-dryadsoft
$ yarn init 또는 npm init

 

4. packagen.json 파일 필수 정보 입력하기 (name, version)

{
  "name": "hello-dryadsoft",
  "version": "0.0.3",
  "main": "lib/index.js",
  "files": [
  	"lib/**/*"
  ],
  "license": "MIT",
  "author": "dryadsoft <dryadsoft@gmail.com>",
  "description": "npm 배포하기",
  "repository": {
    "type": "git",
    "url": "https://github.com/dryadsoft/hello-dryadsoft.git"
  },
  "homepage": "https://github.com/dryadsoft/hello-dryadsoft",
  "scripts": {
  	"prepublishOnly": "tsc"
  },
  "devDependencies": {
  	"typescript": "^4.3.5"
  }
}
- name: 패키지명 필수 입력
- version: 패키지 버전 필수 입력

5. 패키지 배포하기

$ npm publish 또는 yarn publish

 

6. 패키지 재배포하기

npm 패키지는 패키지명뿐만 아니라 버전도 중복을 허용하지 않는다.
그래서 재배포를 위해서는 버전을 변경해줘야 한다.
* 패키지 버전 변경 방법 1 - 명령어 사용
$ npm version major   # package.json파일 version의 첫 번째 숫자
$ npm version minor   # package.json파일 version의 두 번째 숫자
$ npm version patch   # package.json파일 version의 세 번째 숫자

* 패키지 버전 변경 방법 2 - 직접 변경
- package.json파일의 version을 직접 변경 후 저장한다.

 

7. 배포한 패키지 삭제하기

배포한 패키지는 72시간이 지나면 삭제가 불가능하기 때문에 잘못 올린 패키지는 그전에 삭제를 해야 한다.
$ npm unpublish 패키지명 --force 
또는 
$ yarn unpublish 패키지명 --force

 

특정 버전 삭제하기

$ npm unpublish 패키지명@0.0.1
또는
$ yarn unpublish 패키지명@0.0.1
패키지 삭제 시 주의사항

패키지를 삭제하면 동일한 이름의 패키지명을 24시간 이내에는 npm에 다시 배포할 수 없다.

 

8. 등록한 패키지 사용하기

$ npm install hello-dryadsoft 
또는 
$ yarn add hello-dryadsoft

 

9. npm 패키지 배포 시 오류 해결방법

만약에 npm에 방금 가입하고 패키지를 올리려고 한다면 아래와 같은 오류가 발생할 수 있다.
$ npm publish
...
이하 생략
...
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/hello-dryad - Forbidden
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\antnf\AppData\Roaming\npm-cache\_logs\2021-08-14T04_47_31_517Z-debug.log
403 오류가 발생한 이유는 npm에 가입한 후에 이메일 인증을 하지 않았기 때문에다.
npm 가입 시 등록했던 이메일로 들어가 보면 npm에서 발송한 메일이 보일 것이다.
메일 인증 후 다시 시도해보자.
메일 인증 후 npm을 로그아웃하고 다시 재로그인해야 한다.
$ npm logout
$ npm login
$ npm publish
반응형

댓글