在Ubuntu和其他Linux发行版上使用Yarn

时间:2020-01-09 10:46:39  来源:igfitidea点击:

Yarn是Facebook开发的开源JavaScript包管理器。这是一种替代方法,或者我应该说对流行的npm软件包管理器进行了改进。 Facebook开发人员团队创建了Yarn来克服npm的缺点。 Facebook声称Yarn比npm更快,更可靠,更安全。

与npm一样,Yarn为我们提供一种自动安装,更新,配置和删除从全局注册表中检索到的程序包的过程。

Yarn的优点是它更快,因为它缓存了它下载的每个软件包,因此不需要再次下载。它还并行化操作以最大化资源利用率。 Yarn还使用校验和在执行每个已安装程序包的代码之前验证其完整性。 Yarn还保证在一个系统上运行的安装将在其他系统上完全相同地工作。

如果在Ubuntu上使用nodejs,则可能已经在系统上安装了npm。在这种情况下,可以使用npm通过以下方式全局安装Yarn:

sudo npm install yarn -g

但是,我建议我们使用官方方式在Ubuntu / Debian上安装Yarn。

在Ubuntu和Debian上安装Yarn

这里提到的说明应该适用于所有版本的Ubuntu,例如Ubuntu 18.04、16.04等。同一组说明对Debian和其他基于Debian的发行版也有效。

由于本教程使用Curl添加Yarn项目的GPG密钥,因此请确保首先在Ubuntu上安装curl。

sudo apt install curl

如果尚未安装上述命令,则会安装Curl。现在我们有了curl,可以使用它以以下方式添加Yarn项目的GPG密钥:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add 

之后,将存储库添加到源列表中,以便将来可以使用其余的系统更新轻松升级Yarn软件包:

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

我们现在准备出发。更新Ubuntu或者Debian系统以刷新可用软件包列表,然后安装yarn:

sudo apt update
sudo apt install yarn

这将安装Yarn和nodejs。该过程完成后,请验证是否已成功安装Yarn。我们可以通过检查Yarn版本来做到这一点。

yarn --version

对我来说,它显示了这样的输出:

yarn --version
1.12.3

这意味着我的系统上安装了Yarn版本1.12.3.

使用Yarn

我假设我们对JavaScript编程以及依赖项的工作原理有一些基本的了解。我在这里不做详细介绍。我将向我们展示一些基本的Yarn命令,这些命令将入门。

用Yarn创建一个新项目

与npm一样,Yarn也可以使用package.json文件。在这里添加依赖项。所有依赖包都缓存在项目根目录下的node_modules目录中。

在项目的根目录中,运行以下命令以生成新的package.json文件:

它会问我们一些问题。我们可以按Enter跳过默认问题。

yarn init
yarn init v1.12.3
question name (test_yarn): test_yarn_proect
question version (1.0.0): 0.1
question description: Test Yarn
question entry point (index.js): 
question repository url: 
question author: abhishek
question license (MIT): 
question private: 
success Saved package.json
Done in 82.42s.

这样,我们将获得以下package.json文件:

{
  "name": "test_yarn_proect",
  "version": "0.1",
  "description": "Test Yarn",
  "main": "index.js",
  "author": "abhishek",
  "license": "MIT"
}

现在我们有了package.json,我们可以手动对其进行编辑以添加或者删除程序包依赖性,或者使用Yarn命令(首选)。

使用Yarn添加依赖项

我们可以通过以下方式添加对特定程序包的依赖关系:

yarn add <package_name>

例如,如果要在项目中使用Lodash,则可以使用Yarn如下添加它:

yarn add lodash
yarn add v1.12.3
info No lockfile found.
[1/4] Resolving packages…
[2/4] Fetching packages…
[3/4] Linking dependencies…
[4/4] Building fresh packages…
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─ theitroad@localhost
info All dependencies
└─ theitroad@localhost
Done in 2.67s.

我们会看到此依赖项已自动添加到package.json文件中:

{
  "name": "test_yarn_proect",
  "version": "0.1",
  "description": "Test Yarn",
  "main": "index.js",
  "author": "abhishek",
  "license": "MIT",
  "dependencies": {
    "lodash": "^4.17.11"
  }
}

默认情况下,Yarn将在依赖项中添加软件包的最新版本。如果要使用特定版本,则可以在添加时指定它。

yarn add theitroad@localhost

与往常一样,我们也可以手动更新package.json文件。

使用Yarn升级依赖项

我们可以使用以下命令将特定依赖项升级到其最新版本:

yarn upgrade <package_name>

它将查看所涉及的软件包是否具有较新的版本,并将相应地对其进行更新。

我们还可以通过以下方式更改已添加的依赖项的版本:

yarn upgrade theitroad@localhost_or_tag

我们还可以使用一个命令将项目的所有依赖项升级到其最新版本:

yarn upgrade

它将检查所有依赖项的版本,并在有任何较新版本时对其进行更新。

使用Yarn删除依赖项

我们可以通过以下方式从项目的依赖项中删除软件包:

yarn remove <package_name>

安装所有项目依赖项

如果对project.json文件进行了任何更改,则应运行

yarn

或者

yarn install

一次安装所有依赖项。

如何从Ubuntu或者Debian中删除Yarn

如果我们使用上述步骤安装了Yarn,则将通过从系统中删除Yarn的步骤来完成本教程。如果我们意识到不再需要Yarn,则可以将其删除。

使用以下命令删除Yarn及其依赖项。

sudo apt purge yarn

我们还应该从存储库列表中删除Yarn存储库:

sudo rm /etc/apt/sources.list.d/yarn.list

可选的下一步是删除已添加到受信任密钥的GPG密钥。但是为此,我们需要知道密钥。我们可以使用apt-key命令获得它:

Warning: apt-key output should not be parsed (stdout is not a terminal) pub   rsa4096 2016-10-05 [SC]       72EC F46A 56B4 AD39 C907  BBB7 1646 B01B 86E5 0310 uid           [ unknown] Yarn Packaging theitroad@localhost sub   rsa4096 2016-10-05 [E] sub   rsa4096 2019-01-02 [S] [expires: 2020-02-02]

此处的密钥是从pub开始的行中GPG密钥指纹的最后8个字符。

因此,在我的情况下,密钥为86E50310,我将使用以下命令将其删除:

sudo apt-key del 86E50310

我们将在输出中看到OK,并且Yarn包的GPG密钥将从系统信任的GPG密钥列表中删除。