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.json
的files
字段的优先级试最高的。
确定好规则后,再通过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
