簡體   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