'How to install package from github repo in Yarn
When I use npm install fancyapps/fancybox#v2.6.1 --save
, so fancybox package at v2.6.1 tag will be installed. This behavior is described in docs
I want to ask, how to do this with yarn
?
Is this command the right alternative? In yarn docs isn't anything about this format.
yarn add fancyapps/fancybox#v2.6.1
Solution 1:[1]
You can add any Git repository (or tarball) as a dependency to yarn
by specifying the remote URL (either HTTPS or 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.
Here are some examples:
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 isn't available in the Git version.)
To support both npm and yarn, you can use the git+url syntax:
git+https://github.com/owner/package.git#commithashortagorbranch
git+ssh://github.com/owner/package.git#commithashortagorbranch
Solution 2:[2]
For ssh style urls just add ssh before the url:
yarn add ssh://<whatever>@<xxx>#<branch,tag,commit>
Solution 3:[3]
Yarn 2
Installing from remote URLs has changed slightly with Yarn 2. Specifically, remote URLs must be prefixed with the package name. So for github this means:
yarn add '<package name>@https://github.com/<github user>/<github repo>'
Make sure that <package name>
matches the value in the "name"
field of the repo's package.json
file.
To target a specific branch add either head=<branch>
or commit=<full commit hash>
via the URL fragment:
yarn add '<package name>@https://github.com/<github user>/<github repo>#head=<branch name>'
If you're trying to install an individual package from a Yarn monorepo on github you can add workspace=<package name>
to the URL fragment:
yarn add '<package name>@https://github.com/<github user>/<github repo>#head=<branch name>&workspace=<package name>'
Solution 4:[4]
This is described here: https://yarnpkg.com/en/docs/cli/add#toc-adding-dependencies
For example:
yarn add https://github.com/novnc/noVNC.git#0613d18
Solution 5:[5]
For GitHub (or similar) private repository:
yarn add 'ssh://[email protected]:myproject.git#<branch,tag,commit>'
npm install 'ssh://[email protected]:myproject.git#<branch,tag,commit>'
Solution 6:[6]
I use this short format for github repositories:
yarn add github_user/repository_name#commit_hash
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Community |
Solution 2 | Tyler |
Solution 3 | |
Solution 4 | lanwen |
Solution 5 | Eduardo Cuomo |
Solution 6 | betoharres |