发布一个npm包

一、个人发布一个 npm 包需要注意的一些地方和操作:

  • 1、在 npm 官网注册的账户,注册完成之后打开 cli,输入 npm login,然后输入前面注册的用户名和密码
  • 2、在 github 上面建一个库,注意点选 README 和 LICENSE,具体用处后面说
  • 3、git clone 下载之后 npm init,填完之后开始编写代码并测试
  • 4、在 README 里面包的说明,主要包括用途、推广、安装、使用这几项,下面是一个示例,关于里面的链接稍后会说:
1
2
3
4
5
6
7
8
9
10
11
12
13
## 项目名字
这里是项目的介绍

![npm](https://img.shields.io/npm/v/项目名.svg)
![npm](https://img.shields.io/npm/dm/项目名.svg)

[![GitHub forks](https://img.shields.io/github/forks/github账户/项目名.svg?style=social&label=Fork)](https://github.com/github账户/项目名/fork)
[![GitHub stars](https://img.shields.io/github/stars/github账户/项目名.svg?style=social&label=Star)](https://github.com/github账户/项目名)

### Installation
npm i 项目名

### example:
  • 5、把代码提交至 github,然后 npm publish,就发布成功了,这其中有一个注意点,就是包名的问题,稍后说
  • 6、去npm官网搜索到自己的包名,发布成功
  • 7、如果只是测试,最好把发布的包撤回,使用 npm --force unpublish test 撤回自己发布的包,注意,撤回必须发生在发布包后的24小时内,否则无法撤销,因为历史上发生过一起事件,一个大神把其发布的包全部删除,导致出现很多事故,因此有了这个限制

二、关于 README 中的链接

如下图

通过 shields 网站可以制定很多的样式,修改相应的参数即可,可以清晰的显示出包的使用情况和协议等。

三、关于LICENSE

这个是开源许可协议文件,使用的是 MIT 协议,有关开源协议的相关内容可以参考下面几篇文章:

四、包名中不支持包含 download 这个词

这是碰巧发现的一件事情,自己发布的包名中包含 download,然后提示发布失败,下面有失败信息,若有疑问发邮件给support@npmjs.com,经过询问之后回复是下面这样的,不得不说 npm 的回复速度是很快的,而且还是周六给的回复:

1
2
3
npm ERR! publish Failed PUT 400
npm ERR! code E400
npm ERR! That word is not allowed. Please contact support (support@npmjs.com) if you believe you received this inerror.

1
2
Due to our spam mitigation, you are unable to publish an npm package with the word "download" in the title. 
I suggest selecting a different package name and trying again.

应该是为了提升包的整体质量,所以限制了一些包名,有关包名的规则可以看后面这篇文章 众诚翻译

五、向组织中贡献代码

如果你所在的公司或企业有自己的组织,那么你可以将适用于自己企业的包发布在自己公司下,首先你要加入到组织当中,然后将你的代码 package.json 文件中的 name 字段修改为 @zuzhi/test 形式,然后执行 npm publish --access public,发布成功之后在组织中即可看到自己的包,组织内的包在 node_module 中会被存放在统一的组织名目录之中,方便管理。