npm 无法处理版本 #-- 无法识别 `npm 版本补丁` 中的前导 0- 导致 ```npm !ERR```

Kim*_*tes 0 git version npm package.json

我正在使用节点 7.10.1(具有 npm 4.2.0)。我在 Windows 7 SP1 上运行。

在过去的其他项目中,我使用以下内容来修改我的 package.json 中的版本号:

  • git add .
  • git commit - m "reason for change"
  • npm version patch

这在我完成的其他 3 个项目中无缝地工作。

现在,当我在当前项目上运行它时,出现以下错误/输出:

> npm version patch
npm ERR! npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
npm ERR! (run in package dir)
npm ERR! 'npm -v' or 'npm --version' to print npm version (4.2.0)
npm ERR! 'npm view <pkg> version' to view a package's published version
npm ERR! 'npm ls' to inspect current package/dependency versions
Run Code Online (Sandbox Code Playgroud)

package.json可以很好地完成所有其他任务(构建、安装等)。尽管在上面显示的输出的第二行中有指示,我还是在包目录根级别(与 相同的目录package.json)中运行命令。

我的 package.json 中是否有npm version patch不喜欢的东西?该错误没有告诉我什么是错误的,更不用说如何修复它了。本地回购副本似乎很好。我什至删除并重新克隆它,认为我可能在本地遇到了一些问题,但没有改变。

我可以通过这个错误清楚地看到npm !ERR,其余的输出似乎没有任何意义。我通过 npm 全局安装的唯一内容是:

npm list -g --depth=0
C:\Users\myuser\AppData\Roaming\npm
+-- electron@1.7.6
`-- gulp-cli@1.3.0
Run Code Online (Sandbox Code Playgroud)

下面是我package.json的以防万一它有问题......

> npm version patch
npm ERR! npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
npm ERR! (run in package dir)
npm ERR! 'npm -v' or 'npm --version' to print npm version (4.2.0)
npm ERR! 'npm view <pkg> version' to view a package's published version
npm ERR! 'npm ls' to inspect current package/dependency versions
Run Code Online (Sandbox Code Playgroud)

Kim*_*tes 5

(发布我想出的答案)

问题是我在版本号字段中有前导零。

事实证明,版本字段package.jsonin 的任何部分都不能有前导零。具体来说,在我的 package.json 中,我有以下内容:

{
... ... ..
  "version": "0.01.19",
... ... ..
}
Run Code Online (Sandbox Code Playgroud)

这就是导致此命令的原因

npm version patch
Run Code Online (Sandbox Code Playgroud)

产生错误:

npm ERR! npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
npm ERR! (run in package dir)
npm ERR! 'npm -v' or 'npm --version' to print npm version (4.2.0)
npm ERR! 'npm view <pkg> version' to view a package's published version
npm ERR! 'npm ls' to inspect current package/dependency versions
Run Code Online (Sandbox Code Playgroud)

修复方法是将 package.json 文件中的 version 字段更改为以下内容:

{
... ... ..
  "version": "0.1.19",
... ... ..
}
Run Code Online (Sandbox Code Playgroud)

虽然我发现这个问题很好,但在npm发生此错误时没有产生任何有用的信息。实际上没有办法调试产生的错误消息所发生的事情。这应该由 更改npm。在此之前,请注意不要在 package.json 中使用前导零。