Node.js와 npm 2

PARK·2021년 5월 16일
0

서버 및 Node.js

목록 보기
5/7
post-thumbnail

4. dependencies의 ^캐럿과 ~물결표 의미

^과 ~의 의미를 알아보기 전에 SemVer에 대해 알아야합니다.

"dependencies":{
  "nodemon": "^2.2.3"
}

SemVer는 버전을 알리는 표기법입니다. 앞에서부터 Major:Minor:Patch을 의미 합니다.

major = 하휘호환이 되지 않는 변경사항
minor = 하휘호환이 되는 변경사항
patch = 버그수정

^은 major이 변경되면 안된다고 알리는 것입니다. ~는 minor까지 변경되면 안 된다고 알리는 것입니다. 배포용에서 버전을 알려야 사용자가 접근할 수 있기 때문에 위와 같이 표기하는 것입니다. 참고로 아예 ^, ~가 없으면 버전의 변경을 허용하지 않는 것입니다.

5. 패키지 수정

npm outdated 라이브러리 명
npm info 라이브러리 명

npm outdated는 package 파일에 있는 라이브러리의 버전 변화를 말해줍니다. 버전의 변화뿐만아니라 상세한 설명을 보고싶다면 npm info 명령어를 사용합니다. outdated로 조회를 하고 npm update로 업데이트를 할 수 있습니다. 삭제할 때는 밑과 같은 명령어를 사용합니다.

npm rm 라이브러리 명 or npm uninstall 라이브러리 명

6. 패키지 배포

npm publish

package 배포명령어

npm unpublish

package 배포 중단 명령어, 배포후 사용자 배려를 위해 72시간 이후 중단할 수 있다.

패키지 배포하기

패키지를 배포하기 위해서는 https://www.npmjs.com/에서 계정을 만들어야합니다.

계정을 만들었으면 터미널에서 해당계정으로 로그인합니다.

npm login

username => password => email을 순서대로 적으면 됩니다.

{ //package.json
  "name": "test-157787",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "fdsa09876",
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1"
  },
  "devDependencies": {
    "rimraf": "^2.0.7"
  }

패키지 배포에서 중복되지 않는 "name"이 중요합니다.

npm publish로 배포합니다.

**npm ERR! code E403**

**npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/npmtest-02100218 - Forbidde**

**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.
**  // 만약 이런 오류가 발생한다면 이메일 계정으로 접속해 인증하면 됩니다.

test-1577873@0.0.1를 터미널에 출력시키며 완료됩니다.

npm info test-1577873로 확인하시면 됩니다.

참고

npx는 패키지 관리 모듈인 npm의 새로 추가된 도구로써 npm을 편하게 사용하게끔 도와줍니다. 첫번째 포스팅에서도 말했듯이 전역 설치에 대한 문제점이 있고, package.json의 수월한 관리를 위해 사용합니다.

npx는 먼저 로컬에서 설치되어 있는 패키지를 찾고 없으면 npm 레지스터리에 접근, 및 설치하는 도구입니다. 좋은 점은 레지스터리에 접근하는 경우 작업이 끝나면 알아서 해당 패키지를 제거합니다.

profile
익숙한 것에 작별을 고해야한다

0개의 댓글