본문 바로가기

개발/프로그래머스 데브코스

프로그래머스 데브코스 92일차 with. TS 웹 풀스택

📚요약

지난 시간에 만들었던 오픈소스 프로젝트를 이번 시간에는 npm을 통해서 배포하는 방법을 배워보겠습니다.

 

📖오픈 소스 프로젝트

📄npm 배포

📑npm 회원가입

npm에 배포를 진행하기에 앞서 먼저 회원가입을 해야 합니다.

 

사이트에서 진행하면 됩니다.

 

npm | Home

Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

 

회원가입이 끝나면 터미널에서도 npm에 로그인을 해야 합니다. `npm login` 명령어를 사용하면 웹 브라우저를 통해 로그인을 할 수 있습니다.

 

📑package.json 생성

해당 파일은 npm init을 통해 생성할 수 있습니다. description의 경우 자동으로 readme 파일에 적혀있는 텍스트를 그대로 가져와줍니다.

 

{
  "name": "minidash",
  "version": "0.0.1",
  "description": "MiniDash는 Lodash를 경량화하고 간소화 시킨 JavaScript 유틸리티 라이브러리입니다.",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": ["modules","util"],
  "repository": {
    "type": "git",
    "url": "https://github.com/minidashpractice/minidash"
  },
  "homepage": "https://github.com/minidashpractice/minidash",
  "author": "nulzi",
  "license": "ISC"
}

△package.json

package.json에 repository와 homepage를 기입하면 나중에 npm에 배포를 하게 되는 경우 아래 사진과 같은 정보를 보여줍니다.

license와 keywords 또한 아래 사진처럼 정보를 제공해 줍니다.

 

📑.npmignore

해당 파일은 github를 사용해 봤다면 익숙해 보일 수 있습니다. '.gitignore' 파일과 비슷하게 생겼고 역할도 비슷합니다. 차이점은 .gitignore 파일의 경우 git을 사용할 때 변경사항을 체크에서 제외하는 파일이라면, .npmignore 파일은 npm에 배포할 때 포함하지 않을 파일의 목록을 작성한다는 것입니다.

node_modules/
test/
webpack.*.js

△.npmignore 파일

 

📑배포

이제 설정이 어느 정도 끝났으니 배포를 진행해 보겠습니다. `npm init -y` 명령어를 통해 배포할 내용을 잘 되었는지 한 번 더 확인합니다.

 

이제 `npm pubilsh` 명령어를 통해 배포를 진행합니다. 권한 에러가 발생할 수 있는데 이는 관리자 권한으로 실행하거나 sudo를 이용하면 됩니다.

 

배포된 내용에서 변경 사항 발생 시 버전을 올려주어야 합니다.

🍯tip! 버전 자동 업데이트 `npm version patch`

 

📑배포 중 에러 발생

1. 배포하려는 패키지의 이름과 유사한 이름이 많은 경우 배포가 거부될 수 있습니다. 이름은 다른 패키지들과 겹치지 않게 유니크하게 지어야 합니다.

 

2. npm error code E402

npm error 402 Payment Required - PUT url - You must sign up form private packages

해당 오류는 private package는 유료 서비스인데 가입하지 않고 사용하려고 했기 때문에 발생한 에러입니다. `npm publish --access=public` 명령어를 통해 public으로 배포를 진행하면 문제없이 배포가 됩니다.

 

배포가 성공했다면 개인의 npm에 새로운 패키지가 등록되었을 것입니다.

 

📑배포 버전 취소

배포된 버전이 잘못된 경우 배포를 취소하고 싶을 수 있습니다. 그때는 `npm unpublish` 명령어를 사용하면 배포를 취소할 수 있습니다. 하지만 오픈 소스는 다양한 사람이 사용하고 있기 때문에 배포된 버전을 갑자기 취소할 경우 여러 문제를 불러일으킬 수 있습니다. 그렇기에 npm에서 제공하는 취소하기 위한 조건이 있습니다.

 

버전 취소 조건

  1. 72시간 전에는 언제든 취소할 수 있다.
  2. 72시간이 지난 후에는
    1. 해당 패키지를 의존하는 패키지가 없어야 한다.
    2. 다운로드 수가 300 이하여야 한다.
    3. owner 또는 maintainer가 혼자여야 한다.

더 자세한 내용은 공식 사이트에서 확인할 수 있습니다.

 

📄오픈 소스 프로젝트 기여 주의 사항

실제 운영 중인 오픈소스에 PR 연습을 하면 안 됩니다. 다양한 사람들이 사용하고 있기 때문에 문제가 발생할 수 있습니다. 최근에 발생한 expressjs PR 테러 사태처럼 문제가 될 수 있습니다.

 

다음 시간에 계속...

 

출처 & 참고

강사님의 강의