npm:为什么会使用版本"0.1"无效的? [英] npm: Why is a version "0.1" invalid?

查看:265
本文介绍了npm:为什么会使用版本"0.1"无效的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须将npm应用程序的版本从0.1更改为0.0.1,以使npm不能执行此操作.

I had to change the version of my npm app from 0.1 to 0.0.1 in order for npm not to do this.

$ 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

For completeness here's the working 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".

version used to be "0.1" when it made the error.

这是某种需要3套版本号的API/ABI兼容性版本控制概念吗?为什么错误消息不会更加友好这个吗?

Is this some sort of API/ABI compatibility versioning concept requiring 3 sets of version numbers? Why is the error message not more friendly w.r.t. this?

推荐答案

是的,这对于语义版本控制是必需的,这是npm软件包使用的版本控制方案.这是来自npm help json 的代码段:

Yes, this is required for semantic versioning, which is the versioning scheme npm packages use. Here's the snippet from npm help json:

版本必须可由 node-semver 解析,该软件包与npm捆绑在一起作为依赖项. (npm install semver自己使用.)

Version must be parseable by node-semver, which is bundled with npm as a dependency. (npm install semver to use it yourself.)

npm的semver实施方式与semver.org上的内容有所不同:

Here's how npm's semver implementation deviates from what's on semver.org:

  • 版本可以以"v"开头
  • 通过连字符与主三位数版本分开的数字项将被解释为内部版本"数字,并将增加版本.但是,如果标签不是用连字符分隔的数字,则将其视为预发布标签,并且小于没有标签的版本.因此,0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta
  • Versions can start with "v"
  • A numeric item separated from the main three-number version by a hyphen will be interpreted as a "build" number, and will increase the version. But, if the tag is not a number separated by a hyphen, then it's treated as a pre-release tag, and is less than the version without a tag. So, 0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

这篇关于npm:为什么会使用版本"0.1"无效的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆