1. Creating a Package(创建包)
1.创建一个包
一个包
是一些代码和一个提供关于你包
的Yarn信息的package.json
文件。
大多数软件包使用某种版本控制系统。最常见的是git,但Yarn不介意你选择使用哪一个。对于本指南,我们的示例将使用git。
注意:
如果你想遵循本指南,一定要先安装git和Yarn。
创建你的第一个包
为了创建你的第一个软件包,打开你的系统终端/控制台并运行以下命令:
git init my-new-project
cd my-new-project
yarn init
这将创建一个新的git仓库,将其放入其中,然后打开一个交互式表单来创建一个新的Yarn项目,其中包含以下问题:
name (my-new-project):
version (1.0.0):
description:
entry point (index.js):
git repository:
author:
license (MIT):
您可以键入每个问题的答案,或者您可以按enter / return使用默认值或将其留空。
提示:
如果你想使用默认设置,你也可以运行yarn init --yes
,它会跳过所有的问题。
package.json
现在你应该有一个package.json
类似于这样的东西:
{
"name": "my-new-project",
"version": "1.0.0",
"description": "My New Project description.",
"main": "index.js",
"repository": {
"url": "https://example.com/your-username/my-new-project",
"type": "git"
},
"author": "Your Name <you@example.com>",
"license": "MIT"
}
你在package.json
看到的字段有以下意义:
name
是你的包的标识符,如果你打算把它发布到全局注册表中,你需要确定它是唯一的。
version
是您的软件包的兼容版本,您可以尽可能多地发布软件包,但它们必须具有新版本。
description
是一个可选但被推荐的字段,被其他Yarn用户用来搜索和理解你的项目。
main
用于定义像Node.js这样的程序使用的代码的入口点。如果未指定,它将默认为index.js
。
respository
是另一个可选但值得推荐的字段,可帮助您的包的用户找到回馈的源代码。
- author是包的创建者或维护者。它遵循格式"Your Name <you@example.com> (http://your-website.com)"
license
是您的软件包的已发布法律条款以及软件包中允许使用的代码是什么。
当你运行yarn init
时,它所做的只是创建这个文件,在后台没有任何反应。你可以随意编辑这个文件,只要你想。
其他字段
我们来看看您可能想添加的一些额外的package.json字段。
{
"name": "my-new-project",
"...": "...",
"keywords": ["cool", "useful", "stuff"],
"homepage": "https://my-new-project-website.com",
"bugs": "https://github.com/you/my-new-project/issues",
"contributors": [
"Your Friend <their-email@example.com> (http://their-website.com)",
"Another Friend <another-email@example.com> (https://another-website.org)"
],
"files": [
"index.js",
"lib/*.js",
"bin/*.js"
],
"bin": {
"my-new-project-cli": "bin/my-new-project-cli.js"
}
}
keyword
是其他开发人员可以搜索以查找您的软件包或相关软件包的术语列表。
homepage
是一个网址,用户可以通过一个网站向用户介绍该网站的介绍,文档和其他资源的链接。
bugs
是一个URL,指向你的包的用户,如果他们发现你的包的问题。
contributors
是该软件包的贡献者名单。如果您的项目中还有其他人参与,您可以在这里指定他们。
- file是发布和安装时应包含在软件包中的文件列表。如果未指定Yarn将包含每个文件。
bin
是Yarn在安装时为其创建的cli命令(二进制文件)的映射。
有关上述package.json
各个字段的所有字段和更多详细信息的完整列表,请参阅package.json
文档。
许可和开源
通常鼓励Yarn包是开源的,但重要的是要注意,它们本身并不是简单地发布它们的开源软件。
为了使代码成为开源代码,它需要有一个开源许可证。有许多开源许可可供选择,这里有一些常见的许可:
当您为软件包选择开源许可证时,请务必使用许可证文本在软件包的根目录中添加LICENSE
文件并更新您的package.json
license
字段。
注意
:如果您不希望您的项目被许可为开源项目,您应该明确许可是什么或者是否未经许可。
代码共享
您可能希望允许您的软件包用户能够访问您的源代码并有办法报告问题。有几个受欢迎的网站托管你的代码:
这些网站将允许您的用户查看您的代码,报告问题并回馈。一旦将代码放在某处,您应该将以下字段添加到您的package.json
代码中:
{
"homepage": "https://github.com/username/my-new-project",
"bugs": "https://github.com/username/my-new-project/issues",
"repository": {
"url": "https://github.com/username/my-new-project",
"type": "git"
}
}
文档
理想情况下,您应该在发布软件包之前编写文档。至少你应该在你的项目的根目录中写一个README.md
文件来介绍你的软件包并记录公共API。
通过为用户提供开始使用项目所需的全部知识并继续使用它,可以定义好的文档。想想那些对你的项目一无所知的人会有的问题。准确描述事情并按需要详细说明,但也要尽量简洁易读。高质量文档的项目要成功得多。
让包内容尽量小
在创建Yarn时,建议您将它们保持小而简单。如果这样做是有道理的,请将大包分成许多小包。Yarn能够非常有效地安装数百甚至数千个软件包,因此受到极大的鼓励。
许多小包都是包管理的绝佳模式。通常这会导致较小的下载大小,因为您不捆绑大量的依赖关系,只使用它的一小部分。
你也应该考虑你的软件包的内容。确保您不会意外地分发您的测试或其他任何不需要使用您的软件包(构建脚本,图像等)的文件。
另外要注意你依赖的软件包,更喜欢更小的依赖关系,除非你有充分的理由不这样做。确保你不会意外地依赖于大量的东西。