当前位置: 首页 > 面试题库 >

npm:为什么“ 0.1”版本无效?

宇文和昶
2023-03-14
问题内容

我必须将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兼容性版本控制概念吗?为什么错误消息对此不友好?


问题答案:

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

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

这是npm的semver实现与semver.org上的不同的方式:

  • 版本可以以“ v”开头
    * 由连字符与主三位数版本分开的数字项将被解释为“内部版本号”,并将增加版本。但是,如果标签不是用连字符分隔的数字,则将其视为预发布标签,并且小于没有标签的版本。所以,`0.1.2-7

    0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta`




 类似资料:
  • 我试图在ubuntu服务器上安装npm和nodejs,但注意到不知何故,在运行后,我最终得到了两个版本。我知道这一点,因为当我运行时,它会返回,而当我运行时,它返回。在我继续之前,我想把这个设置好。有人明白我为什么会有两个版本吗?我的理解是,安装nodejs也应该安装npm,但这只允许我以更高的权限运行npm,我知道我不应该这样做。谁能让我知道我做错了什么?谢谢你。

  • 问题内容: Bower使我可以使用以下语法来指定软件包的版本要求: 但是我无法找到用于的语法。我知道我可以将版本指定为: 大于某个版本 大于或等于版本: 或在一定范围内:。 我也知道有一个通用的语法包含波浪号:。但是我不确定这意味着什么以及它是否与相同。 我也很想知道我是否能够指定多个非连续版本,例如完全大于的加号,等等。 问题答案: 简而言之,Bower版本号(和NPM的)的语法称为SemVer

  • 问题内容: 我知道十进制数不能用有限的二进制数精确地表示(解释),因此会失去一些精度,并且不会精确地表示。另一方面,因为是,所以可以精确表示。 话虽如此,将 三遍 相加并不完全是可以理解的,因此,以下代码将输出: 但是, 五次 相加会得到确切的结果呢?以下代码显示: 如果不能精确表示,将其相加5次给出的精确表示又如何呢? 问题答案: 舍入误差不是随机的,并且它的实现方式会尝试使误差最小化。这意味着

  • 我明白将安装package.json.中定义的节点模块版本,我不明白为什么它试图安装较旧的版本4.9.1,而不是安装4.11.0或更高版本。正因为如此,我得到了下面的错误。有人能帮我解决这个问题吗? 无法下载“https://github.com/sass/node-sass/releases/download/v4.9.1/win32-ia32-67_绑定节点“: 找不到HTTP错误404 环境

  • 我的服务器工作得很好,当我运行节点app.js.然而,我试图使用nodemer来运行我的服务器,它不启动。 npm start显示以下错误: 我的包裹。json: 我的app.js 我已经尝试过: 删除node_modules并运行npm安装 删除package-lock.json,运行npm缓存清理--force并运行npm安装 删除所有文件,重复安装过程 添加npm到路径 这个问题的其他解决方

  • 我知道十进制数不能精确地用有限二进制数表示(解释),因此将失去一些精度,并且不能精确地。另一方面,可以准确地表示,因为它是。 可以理解的是,三次添加并不能准确地给出,所以下面的代码打印: 如果不能精确地表示,那么添加5次它怎么能精确地给出可以精确地表示呢?