Bagaimana cara menginstal paket dengan jalur lokal oleh Yarn? Tidak dapat menemukan paket


105

Di saya, package.jsonsaya menunjuk paket lokal my-custom-i18ndengan jalur relatifnya:

package.json

"dependencies": {
 "core-js": "^2.4.1",
 "my-custom-i18n": "./../MyProject.Shared/myproject-i18n",
 "rxjs": "5.0.0-beta.12",
 ...
}

npm installmenginstal paket dengan benar, tetapi yarnbermasalah dengan itu dan tidak dapat menemukan paket ini:

keluaran benang

$ yarn
yarn install v0.15.1
info No lockfile found.
[1/4] Resolving packages...
error Couldn't find package "myproject-i18n" on the "npm" registry.
info Visit http://yarnpkg.com/en/docs/cli/install for documentation about this command.

Saya melihat itu terlihat di npmregistri, di mana paket ini tidak hidup.

Pertanyaan

Apakah ada perubahan penggunaan benang dengan kemasan lokal? Yang saya maksud dengan paket lokal adalah paket yang ditunjukkan oleh jalur relatif sebagai my-custom-i18n.

Jawaban:


201

Benang membutuhkan awalan file:untuk paket lokal.

Untuk jalur relatif:

yarn add file:./../your-project

Untuk jalur absolut

yarn add file:/dev/your-project

Untuk contoh Anda, ketergantungan dalam package.jsonakan dideklarasikan sebagai berikut:

 "my-custom-i18n": "file:./../MyProject.Shared/myproject-i18n",

Ini berfungsi baik untuk Benang dan NPM juga.

Ini adalah ketidakcocokan dengan klien NPM, tim Yarn sadar dan menyatakan untuk mendukung perilaku ini - referensi tentang masalah GitHub .

Memperbarui:

Sejak rilis v0.21.0 , file:awalan tidak diperlukan. Lihat pull-request dengan fix and changelog .


1
terima kasih, bekerja seperti pesona. Tetapi jika itu tidak kompatibel dengan klien npm untuk saat ini - saya akan biarkan npmapa adanya :) PS ide saya adalah menggunakan yarnhanya secara lokal tanpa mengubah seluruh tim dan proyek. Jadi .. Saya harus menunggu sampai dukungan untuk ini :)
michalczukm

3
pastikan Anda menghapus cache Anda. sebagai benang selalu mencoba versi cache terlebih dahulu
Bo Chen

5
1 untuk pembaruan! Menghapus file:awalan memecahkan masalah yang kami hadapi di mana yarn installdi windows akan menambahkan ./awalan ke jalur file relatif, tetapi yarn installdi macOS akan menghapusnya.
Magne

Jalan mutlak tidak berhasil untuk saya. Ini akan bekerja untuk instalasi, tetapi kemudian transpiling akan gagal karena entah bagaimana itu mencari jalur relatif tetapi kunci benang memiliki jalur absolut.
pixelearth

1
Tampaknya dengan benang 1.17.3yang file:awalan masih diperlukan dalam situasi berikut: Mari kita katakan Anda memiliki paket baryang memiliki ketergantungan lokal ./dependencies/xyz. Jika paket lain foomenggunakan paket bar, itu akan mencoba menyelesaikan ./dependencies/xyzrelatif terhadap foodirektori, bukan relatif terhadap bardirektori. Setelah mengubah ketergantungan file:./dependencies/xyz, masalah telah diselesaikan.
David Callanan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.