[英]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问题:
换句话说,版本号必须是3个数字,并用点号分隔,之后可以在破折号前加上预发行标签或内部版本号。 但是,根据semver.org,具有由4个数字组成且由点分隔的版本号不是有效的版本号。
因此,出于某种原因,而不是抱怨我的包装的格式格式版本非法,而是纱线输出“错误找不到包装”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.