npm与包
开发属于自己的包
-
需要实现的功能
-
格式化日期
-
转义HTML中的特殊字符
-
还原HTML中的特殊字符
-
-
初始化包的基本结构
-
新建theima-tools文件夹,作为包的根目录
-
在theima-tools文件夹中,新建如下三个文件
-
package.json(包管理配置文件)
-
index.js(包的入口文件)
-
README.md(包的说明文档)
-
-
-
初始化package.json
{ "name": "theima-tools", "version": "1.0.0", "main": "index.js", "description": "提供了格试化时间、HTMLEscapef的功能", "keywords": [ "theima", "dateFormat", "escape" ], "license": "ISC" }
包的名称 name ,注意文件夹的名称和 name名称没关系。编写自己的包名之前要去官网查一遍,因为包名不能重复。
包的版本 version ,默认从1.0.0开始
包的入口文件 main
包的描述信息 description
搜索关键字 keywords
包遵守的开源许可协议 license ,npm官方推荐ISC - 在 index.js 中定义格式化时间的方法
// 定义格式化时间的函数 function dataFormat(dataStr) { const dt = new Date(dataStr) const y = dt.getFullYear() const m = padZero(dt.getMonth() + 1) const d = padZero(dt.getDate()) const hh = padZero(dt.getHours()) const mm = padZero(dt.getMinutes()) const ss = padZero(dt.getSeconds()) return `${y}-${m}-${d} ${hh}:${mm}:${ss}` } // 定一个补零的方法 function padZero(n) { return n > 9 ? n : "0" + n }
- 在 index.js 中定义转义 HTML 的方法
// 定义转义 HTML 字符的函数 function htmlEscape(htmlStr) { return htmlStr.replace(/<|>|"|&/g, match => { switch (match) { case '<': return '<' case '>': return '>' case '"': return '"' case '&': return '&' } }) }
- 在 index.js 中定义还原 HTML 的方法
// 定义还原 HTML 字符的函数 function htmlUnEscape(str) { return str.replace(/<|>|"|"/g, match => { switch (match) { case '<': return '< ' case '>': return '>' case '"': return '"' case '&': return '&' } }) }
-
将不同的功能进行模块化拆分
-
将格式化时间的功能,拆分到 src->dateFormat.js 中
-
将处理HTML字符串的功能,拆分到 src->htmlEscape.js 中
-
在index.js中,导入两个模块,得到需要向外共享的方法
-
在index.js中,使用module..exports把对应的方法共享出去
-
-
编写包的说明文档
包根目录中的 README.md 文件,是包的使用说明文档。通过它,我们可以事先把包的使用说明,以markdown的格式写出来,方便用户参考。
README文件中具体写什么内容,没有强制性的要求;只要能够清晰地把包的作用、用法、注意事项等描述清楚即可。
我们所创建的这个包的README.md文档中,会包含以下6项内容:
安装方式、导入方式、格式化时间、转义HTML中的特殊字符、还原HTML中的特殊字符、开源协议
发布包
-
注册npm账号
-
登录账号
npm账号注册完成后,可以在终端中执行 npm login 命令,依次输入用户名、密码、邮箱后,即可登录成功。
-
把包发布到 npm 上
将终端切换到包的根目录之后,运行 npm publish 命令,即可将包发布到 npm 上(注意:包名不能雷同)。
-
查看发布的包
-
删除已发布的包
运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包
注意:
-
npm unpublish 命令只能删除72小时以内发布的包
-
npm unpublish 删除的包,在24小时内不允许重复发布
-
发布包的时候要慎重,尽量不要往npm上发布没有意义的包!!!
-
学习视频:https://www.bilibili.com/video/BV1a34y167AZ?spm_id_from=333.999.0.0