npm : "0.1"버전이 잘못된 이유는 무엇입니까?


92

npm이이를 수행하지 않도록 내 npm 앱의 버전을 0.1에서 0.0.1로 변경해야했습니다.

$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: invalid version: 0.1
npm ERR!     at validVersion (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modul
es/read-package-json/read-json.js:571:40)
npm ERR!     at final (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read
-package-json/read-json.js:323:23)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:139:33
npm ERR!     at cb (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/slide/l
ib/async-map.js:48:11)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:301:48
npm ERR!     at fs.js:207:20
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.3.0
npm ERR! command "/usr/local/Cellar/node/0.10.5/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/lust/Documents/ply/dev-server
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.18
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/lust/Documents/ply/dev-server/npm-debug.log
npm ERR! not ok code 0

완전성을 위해 여기에 작동하는 json이 있습니다.

$ cat package.json
{
    "name": "ply",
    "description": "ply server for local dev testing deployments",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
        "express": "3.x"
    }
} 

오류가 발생했을 때 버전은 "0.1"이었습니다.

3 세트의 버전 번호가 필요한 일종의 API / ABI 호환성 버전 관리 개념입니까? 오류 메시지가 더 친숙하지 않은 이유는 무엇입니까?


1
npm version명령을 살펴보십시오 . 메이저, 마이너 또는 패치 수준에 따라 의미 체계 버전을 증가시킬 수 있습니다. 예 : npm version major, npm version minor,npm version patch
노아

답변:


110

예, 이것은 npm 패키지가 사용하는 버전 관리 체계 인 의미 체계 버전 관리에 필요 합니다. 다음은 의 스 니펫입니다npm help json .

버전은 종속성으로 npm과 함께 번들로 제공 되는 node-semver 로 구문 분석 할 수 있어야합니다 . ( npm install semver직접 사용하십시오.)

다음은 npm의 semver 구현이 semver.org에있는 것과 어떻게 다른지 보여줍니다.

  • 버전은 "v"로 시작할 수 있습니다.
  • 하이픈으로 주요 3 자리 숫자 버전과 구분 된 숫자 항목은 "빌드"번호로 해석되어 버전이 증가합니다. 그러나 태그가 하이픈으로 구분 된 숫자가 아니면 출시 전 태그로 처리되고 태그가없는 버전보다 적습니다. 그래서,0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

37
멋있는. 오류는 "npm에 의미 적 버전 관리가 필요합니다"의 효과에 대해 말해야합니다.
Steven Lu

++ 태그 릴리스의 선호 처리에 주목하기 위해
Benxamin 2013 년

@StevenLu 나는 이것이 사용하는 semver의 버전을 언급해야한다고 생각합니다. 현재 2.0.0입니다.
Deoxyseia 2017-04-04


4

그래서 짧은 대답은 "시맨틱 버전 관리를 사용해야합니다"입니다.

그러나 그 뒤에있는 이유는 모든 npm 사용자에게 합리적이고 균일 한 패키지 버전을 제공하기 위함입니다. 패키지의 버전 번호를 받고 때, 당신은 어떤 저자가 semver 이해하는 신뢰의 수준을 제대로을 사용한다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.