[node.js] npm : “0.1”버전이 잘못된 이유는 무엇입니까?

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 호환성 버전 관리 개념입니까? 오류 메시지가 더 친숙하지 않은 이유는 무엇입니까?



답변

예, 이것은 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


답변

간단한 대답-사용 0.1.0

0.1 작동하지 않을 것이다

즐거운 코딩 되세요!


답변

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

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


답변