Yarn: `yarn add` untuk paket cakupan terhadap registri pribadi dengan kredit untuk npm publik gagal

Dibuat pada 26 Jan 2017  ·  3Komentar  ·  Sumber: yarnpkg/yarn

Judulnya agak ngawur. Dengan kata lain: ketika .npmrc (atau, mungkin, .yarnrc ) dikonfigurasi dengan _both_ URL registri pribadi _dan_ token autentikasi untuk dipublikasikan ke npm publik, menginstal jeda paket cakupan. Registri pribadi yang dimaksud di sini adalah Artifactory, dan teori yang berlaku adalah bahwa Benang mengirimkan kredit (_tidak tepat_: konfigurasi untuk dua URL yang berbeda), yang tidak disukai Artifactory, dan 401s (karena kreditnya untuk npm publik, bukan Artifactory). Saya tidak yakin mengapa paket cakupan akan diperlakukan secara berbeda, karena sebaliknya berfungsi dengan baik.

Berikut adalah beberapa perintah untuk menggambarkan:

> pwd
~

> cat .yarnrc
cat: .yarnrc: No such file or directory

> cat .npmrc
registry=<private registry URL that works fine with npm and non-scoped packages>
//registry.npmjs.org/:_authToken=<my auth token>

> yarn add @types/d3-scale --verbose
yarn add v0.19.1
info No lockfile found.
verbose Performing "GET" request to "https://yarnpkg.com/latest-version".
[1/4] 🔍  Resolving packages...
verbose Performing "GET" request to "<correct private registry URL ...>/@types%2fd3-scale".
verbose Request "<correct private registry URL ...>/@types%2fd3-scale" finished with status code 401.
verbose Error: Couldn't find package "@types/d3-scale" on the "npm" registry.
    at MessageError (/usr/local/Cellar/yarn/0.19.1/libexec/lib/node_modules/yarn/lib/errors.js:8:5)
    at /usr/local/Cellar/yarn/0.19.1/libexec/lib/node_modules/yarn/lib/resolvers/registries/npm-resolver.js:207:15
    at next (native)
    at step (/usr/local/Cellar/yarn/0.19.1/libexec/lib/node_modules/yarn/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
    at /usr/local/Cellar/yarn/0.19.1/libexec/lib/node_modules/yarn/node_modules/babel-runtime/helpers/asyncToGenerator.js:28:13
    at process._tickCallback (internal/process/next_tick.js:103:7)
error Couldn't find package "@types/d3-scale" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

> npm install @types/d3-scale
~
└─┬ @types/[email protected] 
  └── @types/[email protected] 

> yarn add d3-scale          
yarn add v0.19.1
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 8 new dependencies.
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
└─ [email protected]
✨  Done in 2.45s.

# edit .npmrc...

> cat .npmrc 
registry=<same registry URL>

> yarn add @types/d3-scale 
yarn add v0.19.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 2 new dependencies.
├─ @types/[email protected]
└─ @types/[email protected]
warning No license field
✨  Done in 1.50s.

Komentar yang paling membantu

Saya pikir ini adalah baris kode yang menyinggung: https://github.com/yarnpkg/yarn/blob/master/src/registries/npm-registry.js#L56 (klausa terakhir).

Membaca dalam konteks sepertinya penulis berasumsi bahwa "cakupan" menyiratkan "diautentikasi".

Semua 3 komentar

Untuk latar belakang tambahan, instance Artifactory dikonfigurasi untuk mengizinkan akses anonim. Jika Anda tidak memberikan kredensial, Anda dapat membaca apa pun yang Anda suka. Jika Anda memberikan kredensial apa pun, Artifactory mencoba memvalidasinya dan mengembalikan status 401 (dalam hal ini, karena pengguna tidak ada.)

Saya pikir ini adalah baris kode yang menyinggung: https://github.com/yarnpkg/yarn/blob/master/src/registries/npm-registry.js#L56 (klausa terakhir).

Membaca dalam konteks sepertinya penulis berasumsi bahwa "cakupan" menyiratkan "diautentikasi".

Memiliki masalah yang sama persis Jumat lalu, harus menghapus token auth dari ~/.npmrc untuk dapat mengunduh paket scoped dari artifactory lokal.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat