npm 公共包发布

Published on

将最近项目中封装的一个组件做成 npm 包发布出去,造轮子事小,学习包发布流程事大 👊。

目前已发布完并更新修复一些小问题,整理一下发包和更新步骤:

注册 npm 账户

进入npm 官网,然后注册用户,填写必要信息并备份账号信息。

准备本地文件

在要发布的文件所处的位置下,执行 npm init命令,会要求填入项目名称,版本号,描述,关键词,开源协议等信息。npm 详细规则和要求 还是挺多的,所以也尽量填写规范详细些。

项目名和不能和npm中已有的项目名一样,必须唯一,我也和其他 RN 库一样,以 react-native-xx 开头。其中版本号需要遵循MAJOR.MINOR.PATCH的规范,即主版本号,迭代小版本,和小调整 bug 修复版本。所以首次法发包就用了 1.0.0

填写完之后就在当前位置生成了package.json文件,此时当前位置还应该包含要发布的所有文件或目录(文件夹)。

本地登入 npm 账户

继第一步已经创建了npm账户,现在就要在本地npm登入,在此之前确认npm源地址 :

npm config get registry

需要是如下的原本的 npm 源地址,则直接到登入步骤。

https://registry.npmjs.org/

如果之前换过其他源,比如国内的淘宝源,则需要手动换回 npm 源地址:

npm config set registry https://registry.npmjs.org/

现在登入

npm login

需要输入之前的账户信息,用户名密码这些:

一路输入确认之后,再通过

npm whoami

命令,确认已经成功登录。如果输出自己的用户名则表示已经成功登录。注意 npm 登录后只在

添加文件及发布

在要发布的包下面执行npm init,指定作者名,开源协议等信息,一路 enetr 创建package.json文件。 如果该位置下的所有文件全部都要发布,且package.json各配置正确,则已经可以直接通过

npm publish

命令发布。

如果该位置下仍然有部分文件不想用于发布,则需要过滤掉这些文件。

可以使用如下方式:

方法一:添加.gitignore.npmignore文件。

这两个文件都会将满足条件的文件在发布的时候忽略掉,同时使用的话只有 .npmignore 规则生效。

方法二:在package.json文件中指定files

此种方式则直接了当得多,忽略文件相当于反选,而package.json文件的files字段则是直接指定的,语法和.git ignore相似,满足条件的文件和目录才会被发布。

并且,在files中指定的文件,就算被配置到了.npmignore 中,它依然会被发布。也就是说package.jsonfiles字段的优先级试最高的。

详细查看 npm 官方的 package.json 细则

确定好规则后,再通过npm publish发布,就可以发布指定的文件了。

发布成功后,会有 log 信息 点击查看成功截图 ,包就在 npm 网站上,可以在个人的 Packages 里查看。

版本更新

一个 npm 包肯定要不停完善的,我们更新文件之后,需要变动版本号再发布:

npm version patch

这是升级小版本,即 1.0.X , 修改第三位版本哈号+1。或者

npm version minor

这是升级迭代版本,即修改 1.X.0 修改第二位版本号+1。

详细查看 npm 官网的 version 细则

当然有更简单的方法,直接修改package.json文件中的版本号

不管是命令修改版本号还是手动改 package.json 文件。最后依然要执行:

npm publish

新版本才更新发布成功。

然后才真正开始了需要一直持续的的维护~


npm 账号注册后一定要到邮箱中进行确认,第一次发包的时候,报了如下的错:

竟是因为要先确认邮箱,确认后就发布成功了~

发布成功后 log:

其他

如果发布包之后,因为误发了某些文件,手动在 npm 站点上将其删除了,需要重新发布的话,要等 24 小时后重新 publish