我不得不将我的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!     <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兼容性版本控制概念吗?为什么这个错误信息不是更友好的w.r.t.呢?

推荐答案

是的,这对于semantic versioning是必需的,这是npm软件包使用的版本控制方案.以下是the snippet from npm help json:

版本必须是node-semver可解析的,它作为依赖项与npmBundle 在一起.(npm install semver.自己使用.)

以下是npm的semver实现与semver的不同之处.组织:

  • 版本可以以"v"开头
  • 由连字符分隔的数字项与主要的三个数字版本将被解释为"构建"编号,并将增加版本.但是,如果标记不是由连字符分隔的数字,那么它将被视为预发布标记,并且小于没有标记的版本.那么,0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

Node.js相关问答推荐

如何在CustomGPT的 node 中使用服务器端事件(SSE)

FiRestore UPDATE方法引发错误:&Quot;错误:13内部:收到代码为1&Quot;的RST_STREAM

验证器功能在mongoose 中不起作用

try 使用 pdf.js 时 pdf.getPage 不是函数

Typescript 条件语句不过滤值?

为什么 FastAPI 需要 Web 服务器(即 Nginx)而不是 Express API?

Express.js - 监听请求中止

Discord.js V14 interaction.editReply 给出了一个无效的 webhook 令牌错误

Mongoose-更新嵌套数组

等到文件上传完成的有效方法(mongoose )

Socket IOFlutter 未连接

node_modules 中 .bin 文件夹的用途是什么?

来自 Node-aws 的 Dynamo Local:所有操作都失败无法对不存在的表执行操作

我可以通过 JNI 从 Node.js 调用 Java 吗?如何?

异步函数 - 等待不等待promise

如何运行用 TypeScript 编写的 Mocha 测试?

Nodejs续集批量更新

Express.js:没有这样的文件或目录

从 React(同构应用程序)进行 API 调用时出现Access-Control-Allow-Origin问题

使用 Node.js 我得到错误:EISDIR,读取