- 本文参加了由公众号@若川视野 发起的每周源码共读活动, 点击了解详情一起参与。
- 这是源码共读的第39期,链接:# 【若川视野 x 源码共读】第39期 | 如何发布一个 npm 库,自动化管理版本号、生成 changelog、tag 等
最近空闲时间比较充足,为此想提高一下自己的技术能力。为此参加了“每周源码共读活动”,借此机会督促自己每周抽出一定的时间去阅读源码,从而提高自己的项目架构能力,学习一下大佬们的编码组织方法;也借此机会,养成一个学习做笔记,写文章输出的习惯。闲话不多说,现在开始。
作为一个前端开发工程师,安装一个npm包是最基础的。但想必很多人,跟我一样吧。平时工作的时候,如何安装npm包和使用npm包,脑子里想都不用想,就知道如何操作。但如何从0到1封装发布一个npm包,却不是经常使用到。从而对这方面的知识不是很了解。为此,简单写篇文章记录一下吧。
每个人要发布的npm包类型都不同,有UI组件库,有工具函数库,还有各种实用的插件等等。本文例子发布的是自己工作中用到的一些工具函数库,构建工具使用的是Rollup(刚研究了Rollup,巩固一下),代码管理github;
- 新建项目目录
mkdir xxx并进入目录cd xxx - 初始化npm工具包
npm init,初步创建成果类似这样
注意:若需要发布仅有包需要在package.json中增加publishConfig的配置
- 在目录下新建一个index.js文件,使用module.exports暴露你需要向外暴露的函数或变量;
- 将代码托管到github。在github新建项目,并关联项目到github上(发布NPM包可不用同步到github上。一般我们都是选择将代码同步到github上的,具体步骤就不累述了)
NPM账号账号注册,本文就不累赘多述了(偷懒~。。。)。各位看官自行网上看教程(注册地址)
3.1 登录NPM账号
打开项目终端,在终端输入npm login并执行命令登录npm:
按终端提示一步步输入username, password, OTP成功登录后的结果类似这样:
3.2 如何发布NPM包
登录成功之后可以执行发布命令了:npm publish,如下图:
发布期间遇到的问题
1.出现这样的问题。意思就是说你没有这个包的权限,确认你登录的是这个包的用户?原因是你的包名跟别人发布的包名重复了,修改package.json文件中的包名,然后再发布。(若重复出现这样的问题,那就重复改包名字咯~~~)
2.出现这样的问题:意思就是说你不能发布早于之前的版本。解决方法就是修改package.json文件的版本号。
3.3 引用NPM包
随便打要一个测试项目,然后用终端执行命令npm install xxx安装刚刚发布好的npm包。
安装成功后,就可以在node_modules下看到你刚发布上去的npm包了。如下:
现在就可以导入测试一下了:
Perfect!!!测试通过!
3.4 更新NPM包
- 第一步:更新你的NPM包的代码;
- 第二步:修改package.json文件的版本号
- 第三步:执行
npm publish命令