web-dev-qa-db-fra.com

Comment installer un paquet avec un chemin local par Yarn? Il n'a pas pu trouver le paquet

Dans mon package.json je pointe le paquet local my-custom-i18n par son chemin relatif:

package.json

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

npm install installe les paquetages correctement, mais yarn a un problème avec lui et ne trouve tout simplement pas ce paquet:

sortie du fil

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

Je vois qu'il en est question dans le registre npm, où ce paquet ne réside pas.

Question

Y a-t-il un changement à utiliser le fil avec les paquets locaux? Par paquets locaux, je veux dire les paquets désignés par le chemin relatif comme my-custom-i18n.

75
michalczukm

Le fil nécessite le préfixe file: pour les packages locaux.

Pour le chemin relatif:

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

Pour chemin absolu

yarn add file:/dev/your-project

Pour votre exemple, la dépendance dans package.json serait déclarée comme suit:

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

Cela fonctionne aussi bien pour Yarn que pour NPM.

Il s’agit d’une incompatibilité avec le client NPM, l’équipe Yarn est consciente et a déclaré prendre en charge ce comportement - référence sur le problème GitHub .

Mise à jour:

Depuis version v0.21.0 , le préfixe file: n'est pas nécessaire. Voir pull-request avec fix et changelog .

147
Piotr Lewandowski