在Ubuntu和其他Linux发行版上使用Yarn
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密钥列表中删除。