225 votes

Comment installer un paquet à partir du dépôt Github dans Yarn ?

Quand j'utilise npm install fancyapps/fancybox#v2.6.1 --save Le paquet fancybox à la version 2.6.1 sera donc installé. Ce comportement est décrit dans docs

Je veux demander, comment faire cela avec yarn ?

Cette commande est-elle la bonne alternative ? Dans documentation sur le fil n'a rien à voir avec ce format.

yarn add fancyapps/fancybox#v2.6.1

323voto

Kasiriveni Points 1893

Vous pouvez ajouter n'importe quel dépôt Git (ou tarball) comme dépendance à yarn en spécifiant l'URL distante (soit HTTPS, soit SSH) :

yarn add <git remote url> installs a package from a remote git repository.
yarn add <git remote url>#<branch/commit/tag> installs a package from a remote git repository at specific git branch, git commit or git tag.
yarn add https://my-project.org/package.tgz installs a package from a remote gzipped tarball.

Voici quelques exemples :

yarn add https://github.com/fancyapps/fancybox [remote url]
yarn add ssh://github.com/fancyapps/fancybox#3.0  [branch]
yarn add https://github.com/fancyapps/fancybox#5cda5b529ce3fb6c167a55d42ee5a316e921d95f [commit]

(Note : Fancybox v2.6.1 n'est pas disponible dans la version Git).

Pour prendre en charge à la fois npm et yarn, vous pouvez utiliser la syntaxe git+url :

git+https://github.com/owner/package.git#commithashortagorbranch
git+ssh://github.com/owner/package.git#commithashortagorbranch

6 votes

Mais ne peut pas utiliser le style git@xxx

0 votes

Si l'option SSH était ajoutée à cette réponse, nous pourrions probablement perdre toutes les autres.

0 votes

N'oubliez pas que vous pouvez utiliser le versionnement sémantique ! yarn add https://github.com/fancyapps/fancybox.git#semver:^3.0 Cela permettra d'extraire la dernière version majeure, qui est actuellement la 3.5.7.

36voto

Elliot Points 447

Fil 2

L'installation à partir d'URLs distants a légèrement changé avec Fil 2 . Plus précisément, les URLs distantes doivent être préfixées par le nom du paquet. . Donc pour github cela signifie :

yarn add '<package name>@https://github.com/<github user>/<github repo>'

Assurez-vous que <package name> correspond à la valeur dans le "name" de la base de données package.json fichier.

Pour cibler une branche spécifique, ajoutez soit head=<branch> o commit=<full commit hash> via le fragment d'URL :

yarn add '<package name>@https://github.com/<github user>/<github repo>#head=<branch name>'

Si vous essayez d'installer un paquet individuel à partir d'un monorepo Yarn sur github, vous pouvez ajouter workspace=<package name> au fragment d'URL :

yarn add '<package name>@https://github.com/<github user>/<github repo>#head=<branch name>&workspace=<package name>'

32voto

Tyler Points 413

Pour les urls de style ssh, il suffit d'ajouter ssh devant l'url :

yarn add ssh://<whatever>@<xxx>#<branch,tag,commit>

9 votes

Cela a fonctionné pour moi quand yarn a refusé d'honorer le commun git syntaxe de l'url ssh : Ça a marché : yarn add ssh://git@github.com:my-org/my-repo#commit_hash N'a pas fonctionné : yarn add git@github.com:my-org/my-repo#commit_hash

1 votes

Existe-t-il un moyen de faire cela mais à partir de package.json avec yarn install ?

21voto

Lanwen Points 56

Ceci est décrit ici : https://yarnpkg.com/en/docs/cli/add#toc-adding-dependencies

Par exemple :

yarn add https://github.com/novnc/noVNC.git#0613d18

15voto

Eduardo Cuomo Points 1433

Pour GitHub (ou un dépôt privé similaire) :

yarn add 'ssh://git@github.com:myproject.git#<branch,tag,commit>'
npm install 'ssh://git@github.com:myproject.git#<branch,tag,commit>'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X