使用yarn制作npm包

环境

MAC OSX

工具:Yarn (npm install yarnpkg -g),git

创建你的第一个NPM库

在创建你的第一个库之前,你需要了解什么是yarn。

打开终端,首先创建一个git仓库

1
git init RockSocket

进入RockSocket文件夹,执行:

1
yarn init

这将会询问你以下几个问题:

1
2
3
4
5
6
7
name (my-new-project):
version (1.0.0):
description:
entry point (index.js):
git repository:
author:
license (MIT):

可以选择回答或者直接按回车使用括号中的默认值(如果你想所有的东西使用默认值的话,可以直接使用npm install --yes,这样会跳过所有的问题)。

package.json

现在,在文件夹中应该出现了一个package.json,它大致的样式是这样子的:

1
2
3
4
5
6
7
8
9
10
11
12
{
"name": "RockSocket",
"version": "1.0.0",
"description": "RockSocket is a npm framework created by `yarn`",
"main": "index.js",
"repository": {
"url": "https://github.com/wilddylan/rocksocket.git",
"type": "git"
},
"author": "Dylan <3664132@163.com>",
"license": "MIT"
}

这些值的含义分别是(这个文件你可以按照自己的意愿修改):

name:包的唯一标识,如果你这个包可以被别人使用,就必须确认这个名字是唯一的。

version:当前的版本,发布更新必须更改这个值。

description:包的描述,不是必须的值,这个用来帮助用户理解你的库的作用。

main:入口文件

repository:git仓库的地址,以后源代码也是存放在这里的。

author:作者,是有格式的,例如dylan <dylan@china.com> (http://wilddylan.github.io)

license:规定了大家使用你代码的权限。

Additional fields

package.json中你还有可能希望添加以下的一些字段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"name": "RockSocket",
"...": "...",
"keywords": ["cool", "useful", "stuff"],
"homepage": "https://RockSocket.com",
"bugs": "https://github.com/you/RockSocket/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": {
"rock-socket-cli": "bin/rock-socket-cli.js"
}
}

他们分别的含义是:

keywords:别的开发者可以通过这些关键字搜索到你的项目。

homepage:项目的主页,提供一些文档、说明等。

bugs:项目出现的问题,一般是github的issue的地址,可以引导大家去查看。

contributors:项目成员,可以被定义在这里。

files:文件的列表,可以用*来表示所有,规则跟shell的一样。

bin:yarn在安装时可以使用的图形化界面。

项目说明

一般写入到gith中ReadMe.md中,供大家参考。在创建项目的时候,保证库的简洁,同样需要注意你的库所依赖的库。

项目发布

首先要在npm注册一个account,注册地址,紧接着,在当前文件夹下:

1
yarn login

会要求你提供刚刚输入的帐号以及邮箱,会在publish的时候问你询问密码,现在还不需要。

1
yarn publish

首先会让你输入自己的版本号,然后会要求输入刚刚帐号的密码,最后提示成功。

使用你上传的项目

在新的项目中:

1
yarn add RockSocket

也可以通过:

1
yarn info RockSocket

来查看自己库的信息,当然,在npmjs.com上也是可以看的到的。

评论