Sợi không thể tìm thấy đăng ký Github npm tư nhân


8

Tôi đã đăng ký bản beta đăng ký npm riêng của Github và làm theo hướng dẫn của họ: https://github.com/features/package-registry

Hoạt động tốt với npm nhưng tôi thích sử dụng sợi hơn. Và mặc dù npm không có vấn đề gì khi tìm gói đã đăng ký, nhưng sợi không thể tìm thấy gói nào cả.

yarn add @omniphx/adminite-adminite-ui-components đầu ra:

yarn add v1.19.0
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍  Resolving packages...
error Couldn't find package "@omniphx/adminite-ui-components" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Sau khi đọc các repos riêng với sợi, tôi nghĩ rằng mánh khóe là do sợi có định dạng RC hơi khác. Thật không may, điều đó cũng không hoạt động và sợi vẫn không thể tìm thấy đăng ký riêng.

.npmrc

registry=https://registry.npmjs.org
@omniphx:registry=https://npm.pkg.github.com/omniphx

.yarnrc

registry "https://registry.npmjs.org"
"@omniphx:registry" "https://npm.pkg.github.com/omniphx"

Cũng xác nhận rằng mã thông báo github của tôi cũng được đặt với yarn config list:

yarn config v1.19.0
info yarn config
{
  'version-tag-prefix': 'v',
  'version-git-tag': true,
  'version-commit-hooks': true,
  'version-git-sign': false,
  'version-git-message': 'v%s',
  'init-version': '1.0.0',
  'init-license': 'MIT',
  'save-prefix': '^',
  'bin-links': true,
  'ignore-scripts': false,
  'ignore-optional': false,
  registry: 'https://registry.npmjs.org',
  'strict-ssl': true,
  'user-agent': 'yarn/1.19.0 npm/? node/v12.11.1 darwin x64',
  email: 'mattjmitchener@gmail.com',
  lastUpdateCheck: 1570679687836,
  username: 'omniphx',
  '@omniphx:registry': 'https://npm.pkg.github.com/omniphx'
}
info npm config
{
  '//npm.pkg.github.com/:_authToken': 'fake12345',
  registry: 'https://registry.npmjs.org',
  '@omniphx:registry': 'https://npm.pkg.github.com/omniphx',
  python: '/usr/bin/python'
}

Bất kỳ ý tưởng?


Đã giải quyết

Changed "@myorg:registry" "https://npm.pkg.github.com/myorg"
To      "@myorg:registry" "https://npm.pkg.github.com"

Liệu sửa chữa này có giúp ích trong trường hợp của bạn? stackoverflow.com/questions/58430182/ từ
peterevans 17/10/19

Câu trả lời:


9

Tôi vừa gặp phải một tình huống tương tự. Dường như yarnchỉ tìm trong sổ đăng ký gói Sợi chính cho gói riêng của tổ chức tôi. Tôi đã sao chép các ví dụ từ tài liệu Gói của GitHub để xây dựng .npmrctệp của bạn trực tiếp vào .yarnrctệp trong dự án sẽ sử dụng ứng dụng, không biết rằng các định dạng khác nhau (tôi chưa bao giờ phải xử lý .yarnrctệp trước đó).

Tuy nhiên, sau khi cập nhật .yarnrctệp với định dạng chính xác mà bạn đã đề cập ở trên (mà tôi cũng tìm thấy trong việc tìm kiếm xung quanh), yarnđã tìm thấy thành công gói riêng và cài đặt chính xác.

Khi ngẩng cao đầu, yarnphiên bản của tôi : 1.17.3

Bước tôi đã thực hiện

  1. Bắt đầu phiên cuối mới
  2. cd đến dự án
  3. nvm use (nếu bạn có một phiên bản nút cụ thể để sử dụng)
  4. Thêm .yarnrctệp được định dạng chính xác vào dự án. Xem bên dưới để biết nó trông như thế nào.
  5. Thêm thủ công gói và phạm vi phiên bản vào package.jsongói riêng của tôi
  6. Chạy npm login --registry=https://npm.pkg.github.com --scope=@MyOrg
    • Xem ghi chú bên dưới về scope / org gotcha's
  7. Chạy yarn

Điều đó làm việc cho tôi.

.yarnrc

"@myorg:registry" "https://npm.pkg.github.com"

Lưu ý : Xem bên dưới để biết ghi chú về tên org / scope của gotcha

Ghi chú khác

Tôi biết rằng có vẻ như bạn không có bất kỳ vấn đề nào với điều này, với tên người dùng / phạm vi GH của bạn ở trên, nhưng đối với bất kỳ ai khác đến đây, tài liệu về GH hơi thưa thớt về việc ánh xạ tên người dùng / tên org của bạn một phạm vi trong tên gói. Chỉ cần nhớ những chú chó nhỏ này ở đây:

  • Tên gói của bạn phải luôn được đặt trong phạm vi (hoặc tên người dùng) của bạn
    • Ví dụ, name: @johndturn/my-package
  • Nếu tổ chức của bạn có chữ in hoa trong đó, như thế MyOrg, chỉ cần thay thế chúng trong tên của gói trong package.json của bạn .yarnrcbằng chữ thường
    • Ví dụ, name: @myorg/my-package
    • Lưu ý : Khi xác thực với npm login, tôi vẫn giữ các chữ cái viết hoa trong --scope=đối số.
  • Tên của gói của bạn không phải là cùng tên của repo.
    • Ví dụ, đối với một repo được gọi MyOrg/random-prefix.js-lib, bạn có thể có name: @myorg/js-libtrong package.jsontệp của mình cho chính dự án. Sau đó, cài đặt nó trong các dự án khác sẽ trông giống như @myorg/js-lib: 1.0.0.

Làm việc cho tôi quá, cảm ơn. Bây giờ hãy tìm cách thiết lập nó trong CI của tôi, nó không chạy trên Github Action mà là trên jenkins.
Dhwaneet Bhatt

@DhwaneetBhatt câu hỏi tuyệt vời, và nó nên khá đơn giản, với một số giả định. Nếu bạn đang chạy trong Jenkins với Pipelines và a Jenkinsfile, giả định của tôi là bạn chỉ cần thêm các lệnh trên (như npm login ...) vào trong Jenkinsfile, trong bước xây dựng trước. Điều này cũng giả sử rằng bạn đã xác thực Jenkins với một số loại người dùng trong org GitHub của bạn có các đặc quyền chính xác để lấy các gói từ org của bạn. Điều đó nói rằng, tôi chưa triển khai nó cho các hộp Jenkins của chúng tôi, nhưng tôi sẽ cho bạn biết khi tôi làm (nếu nó khác với những gì tôi đã đề cập).
John T

2
Cảm ơn vi đa trả lơi! Có vẻ như vấn đề của tôi là tôi đã có "@myorg:registry" "https://npm.pkg.github.com/myorg"thay vì "@myorg:registry" "https://npm.pkg.github.com". Thật kỳ lạ khi cùng một url hoạt động tốt trong tôi.npmrc
Matthew Mitchener

@MatthewMitchener có vẻ như bạn đã tìm thấy câu trả lời đơn giản nhất: chỉ cần bỏ /myorgphần kết thúc trong đó .npmrc, và sau đó Gói đăng ký gói GitHub hoạt động với cả sợi hoặc npm. (Không cần tách biệt .yarnrc.)
medmunds

2

Tôi không phải là chuyên gia về npm / sợi nên tôi có thể hiểu nhầm những gì đang xảy ra ở đây, nhưng tôi không nghĩ việc ủy ​​quyền gói từ đăng ký npm vẫn hoạt động với sợi. Điều đó có thể liên quan? Khi ủy quyền gói được phát hành cho npm, tôi nhớ đã đọc các bình luận trên Twitter từ những người đã thử nó bằng sợi và nó không hoạt động.

Tìm thấy chủ đề Twitter ở đây: https://twitter.com/github/status/1171832034580451328

Nó không hoạt động với Sợi. Ngay sau khi tôi thay đổi url đăng ký -> Không thể tìm thấy gói.


1

Vấn đề tôi có là hơi khác nhau.

Sau khi thử những gì John đề nghị tôi vẫn không thể thêm các gói đăng ký riêng tư với yarn(nhưng hoàn toàn ổn với npm)

Sau đó, tôi nhận ra hai điều:

Đối với các gói GitHub, npmcũng tốt với một trong hai

registry=https://npm.pkg.github.com/my-org

hoặc là

@my-org:registry=https://npm.pkg.github.com

nhưng yarnchỉ cho phép cú pháp sau.

Tài liệu từ trang web Github chỉ hiển thị cú pháp đầu tiên có thể gây ra sự cố cho người dùng sợi.

Một điều nữa là nếu bạn npm loginvào sổ đăng ký riêng nhưng sử dụng một .yarnrctệp trong dự án của bạn, thì sợi thực sự không thể trộn lẫn npmthông tin đăng nhập của bạn với nó. Mặc dù nó có vẻ hành xử khác nhau trên môi trường khác nhau.

Nhưng nó có vẻ là một cách tốt nhất để gắn bó với yarn login+ .yarnrc, hoặc npm login+ .npmrc(bạn vẫn có thể sử dụng sợi để quản lý các gói của mình trong cả hai trường hợp)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.