Come installare il pacchetto con percorso locale di Yarn? Impossibile trovare il pacchetto


99

Nel mio package.jsonsto indicando il pacchetto locale my-custom-i18ndal suo percorso relativo:

package.json

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

npm installinstalla i pacchetti correttamente, ma yarnha problemi con esso e semplicemente non riesce a trovare questo pacchetto:

uscita del filato

$ 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.

Vedo che lo guarda nel npmregistro, dove questo pacchetto non risiede.

Domanda

C'è qualche cambiamento per utilizzare il filato con le confezioni locali? Per pacchetti locali intendo i pacchetti puntati dal percorso relativo come my-custom-i18n.

Risposte:


195

Il filato richiede il prefisso file:per i pacchetti locali.

Per percorso relativo:

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

Per percorso assoluto

yarn add file:/dev/your-project

Per il tuo esempio, la dipendenza in package.jsonsarebbe dichiarata come segue:

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

Funziona sia per Yarn che per NPM.

È incompatibilità con il client NPM, il team di Yarn è a conoscenza e dichiara di supportare questo comportamento - riferimento al problema di GitHub .

Aggiornare:

Dalla versione v0.21.0 , il file:prefisso non è necessario. Vedi pull-request con fix e changelog .


1
grazie, funziona come un incantesimo. Ma se per ora non è compatibile con il client npm, me ne vado così npmcom'è :) PS la mia idea era di usare yarnsolo localmente senza convertire l'intero team e il progetto. Quindi .. dovrò aspettare fino al supporto per questo :)
michalczukm

3
assicurati di svuotare la cache. come filato prova sempre prima la versione cache
Bo Chen

5
+1 per l'aggiornamento! La rimozione del file:prefisso ha risolto un problema in cui yarn installWindows aggiungeva il ./prefisso ai percorsi dei file relativi, ma yarn installsu macOS lo rimuoveva.
Magne

Il percorso assoluto non ha funzionato per me. Funzionerebbe per l'installazione, ma poi il transpiling fallirebbe perché in qualche modo stava cercando un percorso relativo ma il filato.lock aveva il percorso assoluto.
pixelearth

1
Sembra che con filato 1.17.3il file:prefisso sia ancora necessario nella seguente situazione: Diciamo che hai un pacchetto barche ha una dipendenza locale ./dependencies/xyz. Se un altro pacchetto foosta usando il pacchetto bar, proverà a risolverlo in ./dependencies/xyzrelazione alla foodirectory anziché in relazione alla bardirectory. Dopo aver modificato la dipendenza file:./dependencies/xyzdal problema è stato risolto.
David Callanan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.