在 "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",
[...]
}
现在我被要求将项目部署到生产环境并增加新版本的包版本号。因此,我通过将预发布标记删除为:
来更改每个 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: Why is a version "0.1" invalid?
换句话说,版本号必须是由点分隔的3个数字,之后可以用破折号加上预发布标签或内部版本号。但是,根据 semver.org.
,由 4 位数字组成的版本号不是有效的版本号
所以出于某种原因,yarn 输出的是 "error Couldn't find package",而不是抱怨我的包的版本号格式非法。
我有一个 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",
[...]
}
现在我被要求将项目部署到生产环境并增加新版本的包版本号。因此,我通过将预发布标记删除为:
来更改每个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: Why is a version "0.1" invalid?
换句话说,版本号必须是由点分隔的3个数字,之后可以用破折号加上预发布标签或内部版本号。但是,根据 semver.org.
,由 4 位数字组成的版本号不是有效的版本号所以出于某种原因,yarn 输出的是 "error Couldn't find package",而不是抱怨我的包的版本号格式非法。