每个人要发布的npm包类型都不尽相同,有UI组件库,有工具函数库,还有使用的插件等。笔者要发布的npm包是在项目中常用的工具函数组成的工具函数库,构建工具使用的是rollup,代码托管在github上。下面简述一下一些关键点:
另外如果发布公有包需要在package.json中增加publishConfig的配置
"publishConfig": {
"access": "public"
},
复制代码
更多关于项目的搭建以及一些配置方面的内容建议阅读文末的参考资料。
先看下图了解注册的流程:
网址:www.npmjs.com/signup[2]
输入网址后会进行安全性检查,之后界面如下:
点击"我是人类" 会进行图片验证,如下图:
图片验证完就是输入用户名、密码、邮箱过程,
最后让输入one-time-password,这个一次性密码(相当于验证码)会发到你预留的邮箱里面。填写之后应该会注册成功的。
微信搜索公众号:架构师指南,回复:架构师 领取资料
执行npm login
命令登录npm :
如上图所示,登录失败了。解决办法:使用nrm切换镜像,将镜像改为npm。下面简要介绍一下nrm。
nrm 用于管理镜像,是一个可以切换npm镜像的管理工具。如下是安装和查看是否安装成功的命令:
npm i -g nrm
nrm -V
复制代码
常用nrm命令如下:
想了解更多关于nrm[3]的内容请查看文档和资料[4]。
下图是使用nrm ls命令查看镜像:
下图是将镜像切换为npm
切换镜像之后再登录:
如上图登录时需要输入OTP,要查看邮箱。输入OTP回车之后就可以成功登录了
登录成功之后即可执行发布命令:npm publish
,如下图:
此时npm包发布成功了。
但是感觉名字'mxdevutil'可读性不咋好啊,所以改了一下名字,新名字为'mx-dev-util'重新发布,但却报错,如下图所示:
上图报错信息告诉我们:新包的名字和已有的包名字很相似,所以没有发布成功。解决的方法之一是可以起区分度较大的名字,但删掉重新发布更好。
查资料所如下命令可以删掉发布错误的npm包:
但实际上此命令是表示废弃已发布的npm包,并不是删除。
在npm网站上仍然能够查到已废弃的npm包,如下图所示:
废弃之后是否可以发布成功呢?重新执行npm publish
执行结果如下图:
还是报错,所以单单废弃原有包还是不能发布新包的。
正确的解决办法是:npm unpublish <报名> \-force
,命令执行效果:
再在npm网站上查找则查不到了:
删掉已发布的包之后,终于可以重新发布了:
发布成功!在npm网站上也能够看到新包了:
首先安装我们发布的npm包,执行命令 npm i mx-dev-util
, 如下图:
可以查看package.json文件,返现已经将mx-dev-util加添为dependiences:
接着就是在项目中使用npm包提供的方法了:
更新npm包两步走:
npm version命令使用方式如下:
npm version major | minor | patch | premajor | preminor | prepatch | prerelease
复制代码
这里简单介绍一下major | minor | patch 的区别:在package.json中有一个version字段,结构为 "x.y.z" ,也就是三位的版本号。分别对应 version里面的major、minor,patch。
如果当前版本为 0.0.1 则发布major、minor,patch版本之后会变为 1.0.0 ,0.1.0, 0.0.2。导图总结如下:
了解更多可查看npm version文档和相关资料[5]。
了解了npm version命令之后,执行npm version major
:
执行命令失败,提示需要先提交代码,下图为提交代码过程:
提交代码后,再执行版本更新命令:
提示版本已经更新为2.0.0版本,然后执行 npm publish
命令:
可以看到版本更新成功。
下面总结一下用到发布npm包用到的npm命令
(1)本文介绍发布一个npm包的三个关键环节:
(2)本文介绍了如何使用nrm 切换npm的镜像
希望看完本文对您有帮助,表达不清楚或者写错的地方欢迎不吝指正~
参考资料:
[1] npm包发布详细教程[6]
[2] 如何发布自己的npm包(超详细步骤,博主都在用)[7]
[3] 如何发布一个npm包[8]
关于本文
https://juejin.cn/post/7125709933709885448
— 完 —
关注公众号后,回复下面关键词获取回复 加群,加入前端程序员技术交流群
回复 面试,获取最新大厂面试资料回复 简历,获取 3200 套 简历模板回复 TypeScript,获取 TypeScript 精讲课程回复 uniapp,获取 uniapp 精讲课程回复 Node,获取 Nodejs+koa2 实战教程回复 架构师,获取 架构师学习资源教程
更多教程资源应用尽有,欢迎 关注获取
“分享、点赞、在看” 支持一波👍