繁体   English   中英

在“ npm”注册表中找不到软件包“ my-custom-package”

[英]Couldn't find package “my-custom-package” on the “npm” registry

我有一个Node.js项目,该项目分为几个自定义程序包,每个程序包都有自己的package.json文件。 这是该特定项目的所有自定义代码。 有些具有dependencies/devDependencies ,并且在运行时

yarn install

安装所有依赖项,一切顺利。

package.json文件的内容如下:

{
  "name": "my-custom-package-name", // This changes in each package.json file
  "version": "1.0.3-beta.1", // The version is the same in all package.json files
  "private": true,
  "repository": "https://github.com/my-organization/my-private-repo",
  [...]
}

现在,我被要求将项目重新部署到生产中,并增加新版本的软件包的版本号。 因此,我通过删除prerelease标签更改为每个package.json文件中的版本号:

"version": "1.0.3.1"

但是,然后,如果我再次运行yarn install ,对于从自定义程序包的版本号中删除了预发行标签的每个程序包,都会收到如下错误:

yarn install v1.3.2
[1/4] Resolving packages...
error Couldn't find package "my-custom-package-name" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

为何删除预发行标签会发生这种情况? 当预发布标签在那里时,为什么不发生这种情况?

这些软件包没有被用作项目的其他任何软件包的依赖项,那么为什么yarn试图在npm上解析与package.json文件的名称和版本相匹配的软件包?

我真的在网上四处张望,试图找到与此有关的答案,但是找不到任何相关的东西。

我找到了解决问题的答案,原因是通过从版本号中删除“ -beta”,该版本号不再符合sematinc版本。 在这里看到另一个SO问题:

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

换句话说,版本号必须是3个数字,并用点号分隔,之后可以在破折号前加上预发行标签或内部版本号。 但是,根据semver.org,具有由4个数字组成且由点分隔的版本号不是有效的版本号。

因此,出于某种原因,而不是抱怨我的包装的格式格式版本非法,而是纱线输出“错误找不到包装”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM