NodeJS 如何在Yarn中安装github repo软件包

hrirmatl  于 2022-12-03  发布在  Node.js
关注(0)|答案(7)|浏览(508)

当我使用npm install fancyapps/fancybox#v2.6.1 --save时,fancybox包在v2.6.1标签处会被安装。这个行为在docs中有描述
我想问一下,如何使用yarn来实现这一点?
这个命令是正确的选择吗?在yarn docs中没有关于这个格式的任何东西。

yarn add fancyapps/fancybox#v2.6.1
watbbzwu

watbbzwu1#

您可以通过指定远程URL(HTTPS或SSH)将任何Git仓库(或tarball)作为依赖项添加到yarn

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.

以下是一些示例:

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]
  • (注意:Fancybox v2.6.1在Git版本中不可用。)*

要同时支持npm和yarn,可以使用git+url语法:

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

mcvgt66p2#

Yarn2+

从远程URL安装在Yarn 2中略有变化。具体来说,远程URL必须以包名作为前缀。因此,对于github,这意味着:

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

确保<package name>与存储库的package.json文件的"name"字段中的值匹配。
要定位特定分支,请通过URL片段添加head=<branch>commit=<full commit hash>

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

如果你想在github上安装一个来自Yarn monorepo的独立软件包,你可以在URL片段中添加workspace=<package name>

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

pn9klfpd3#

对于ssh样式的url,只需在url前添加ssh:

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

qeeaahzv4#

具体描述如下:https://yarnpkg.com/en/docs/cli/add#toc-adding-dependencies
例如:

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

drnojrws5#

对于 GitHub(或类似)专用存储库:

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

piztneat6#

我对github仓库使用以下简短格式:
yarn add github_user/repository_name#commit_hash

lztngnrs

lztngnrs7#

在最新版本的Yarn中,它们要求在URL前有一个包名。如果你要安装一个发布到Github Packages的私有包,语法如下:
yarn add @organization/packagename@https://github.com/organization/packagename
这将在package.json中生成以下行:
"@organization/packagename": "https://github.com/organization/packagename"

相关问题