npm: почему версия "0.1" недействительна?



мне пришлось изменить версию моего приложения npm с 0.1 на 0.0.1, чтобы npm не делал этого.



$ 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! <[email protected]>

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", когда он сделал ошибку.



Это какая-то концепция совместимости API/ABI, требующая 3 набора номеров версий? Почему сообщение об ошибке не является более дружественным w.r. t. это?

527   2  

2 ответов:

Да, это необходимо для семантическое управление версиями, который является версионной схемой использования пакетов npm. Вот это фрагмент из npm help json:

версия должна быть проанализирована с помощью node-semver, который поставляется в комплекте с npm в качестве зависимости. (npm install semver использовать его самостоятельно.)

вот как реализация semver npm отклоняется от того, что происходит semver.org:

  • версии могут начинаться с "v"
  • числовой элемент, отделенный от основной трехзначной версии дефисом, будет интерпретироваться как номер" сборки " и увеличит версию. Но, если тег не является числом, разделенным дефисом, то он рассматривается как тег перед выпуском и меньше, чем версия без тега. Итак,0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

Так что да, короткий ответ "вам нужно использовать семантическое версионирование"

но причина этого заключается в том, чтобы обеспечить разумную, единую версию пакета для всех пользователей npm. При получении номера версии пакета, у вас есть некоторые уровень уверенности, что автор понимает semver и использует его должным образом.

Comments

    Ничего не найдено.