本节我们来学习如何发布 Yarn 包,如果我们希望通过 Yarn 共享我们创建好的包给全世界各地的其他开发者,可以将软件包托管到一个可信任的网站上。

创建软件包

首先我们需要创建一个软件包,可以通过下列几个命令来创建,如下所示:

> git init my_yarn
> cd my_yarn
> yarn init

看一下这几个命令的执行效果:

其中 git init my_yarn 命令将会初始化创建一个新本地仓库,它在工作目录下生成一个名为 .git 的隐藏文件夹。然后使用 cd my_yarn 命令跳转到指定目录中,通过 yarn init 初始化一个新的项目。在执行 yarn init 时会出现一些问题,根据需求为每个问题输入答案,最终会在根目录下生成一个 package.json 文件。如果想要对所有的问题都使用默认值,可以直接运行 yarn init --yes 命令。

此时 package.json 文件的内容类似下面所示,当然根据输入答案的不同,内容也会有所不同:

<pre spellcheck="false" class="md-fences md-end-block contain-cm modeLoaded" lang="json" contenteditable="false" cid="n18" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: Consolas, &quot;Liberation Mono&quot;, Courier, monospace; font-size: 0.9em; white-space: normal; display: block; break-inside: avoid; text-align: left; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(223, 226, 229); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">{
"name": "my_yarn",
"version": "1.0.0",
"main": "index.js",
"author": "Your Name <you@example.com>",
"license": "MIT"
}</pre>

这个文件中一些字段,我们前面讲 package.json 文件的时候有讲到,特别是 name 字段和 version 字段是不可或缺的。

后面如果我们还需要在 package.json 文件中添加一些配置,可以手动修改这个文件。

Readme.md文件

一般情况下,我们会在发布软件包之前在根目录中编写一个 Readme.md 文件。这个文件用户介绍软件包并记录公共 API。在定义 Readme.md 文件时,需要为用户提供使用我们软件包的所需全部知识。假设某个人第一个使用这个软件包,可能会遇到很多问题,所以我们需要在文件中准确并尽可能详细地描述这个软件包,但也要尽量简短和易于阅读。

发布一个包

我们可以将创建好的 Yarn 软件包发布到 npm 注册表,该注册表用于在全球范围内分发软件包。

首先我们需要登录到 npm,如果还没有账号可以先注册一个账号,网址为:https://www.npmjs.com/。注册账号大家应该都会吧,这里就演示啦。

然后使用 yarn login 命令登录,命令执行效果如下图所示:


这里会提示要我们输入用户名和电子邮件,但是不会要求我们输入密码,因为 Yarn 不会保留密码或任何会话。但是当我们需要在 npm 上发布或修改某些内容时,就需要用到密码了。

将准备工作完成后,就可以正式发布软件包啦,发布软件包的命令如下所示:

yarn publish

此时会要求我们输入要发布的新版本,如下图:

然后有可能出现报错,告诉我们软件包的名称重复啦,此时我们需要到 package.json 文件中修改软件包的名称,例如修改为 my_yarn_xkd,然后再次发布,一直到不重名为止:

这样一个软件包就发布成功啦,我们可以到官网上去通过软件包名称查找发布后的软件包。

如果我们在本地对软件包进行了修改,想要在 npm 上更新软件包,则需要先修改 package.json 文件中的版本号,然后再次执行 yarn publish 命令即可。


知否
221 声望177 粉丝

Skrike while the iron is hot.