初始化的包的基本结构
- 新建文件夹,作为包的根目录
- 在新建的文件夹中,新建如下三个文件
- package.json(包管理配置文件)
- index.js(包的入口文件)
- README.md(包的说明文档)
package.json文件
{
"name": "testtool322",
"version": "1.0.0",
"main": "index.js",
"description": "提供了格式化时间,HTMLEscape相关的功能",
"keywords": [
"testtool322",
"dateFormat",
"escape"
],
"license": "ISC"
}
- name(包的名字)
- version (包的版本号)
- main (包的入口)
- description (包的简短描述信息)
- keywords (包的搜索关键字)
- license (包所遵循的开源许可协议)
关于更多license许可协议相关内容,可参考
https://www.jianshu.com/p/86251523e898
index.js文件
//这是包的入口文件
const date = require('./src/dateFormat')
const escape = require('./src/htmlEscape')
//向外暴露需要的成员
module.exports = {
...date,
...escape
}
README.md文件
##安装
```
npm install testtool
```
##导入
```js
const testtool = require('testtool')
```
##格式化时间
```js
//调用dateFormat
const dtStr = testtool = testtool.dateFormat(new Date())
//结果 2022-01-19 22:58:04
console.log(dtStr)
```
## 转义HTML中的特殊字符
```js
// 带转换的HTML字符串
const htmlStr1 = '<h1 title="abc">这是h1标签<span>123 </span></h1>'
//调用htmlEscape 方法进行转换
const str1 = testtool.htmlEscape(htmlStr1)
// 转换的结果<h1 title="abc">这是h1标签<span>123&nbsp;</span></h1>
console.log(str1)
```
## 还原HTML中的特殊字符
```js
//待还原的HTML字符串
const str2 = testtool.htmlUnEscape(str)
//输出的结果<h1 title="abc">这是h1标签<span>123 </span></h1>
console.log(str2)
```
## 开源协议
ISC
src文件夹下的两个文件
dateFormat.js文件
// 定义格式化时间的函数
function dateFormat(dtStr) {
const dt = new Date(dtStr)
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
}
module.exports = {
dateFormat
}
htmlEscape.js文件
//定义转义HTML字符的函数
function htmlEscape(htmlstr) {
return htmlstr.replace(/<|>|"|&/g, match => {
switch (match) {
case '<':
return '<'
case '>':
return '>'
case '"':
return '"'
case '&':
return '&'
}
})
}
//定义还原HTML字符串的函数
function htmlUnEscape(str) {
return str.replace(/<|>|"|&/g, match => {
switch (match) {
case '<':
return '<'
case '>':
return '>'
case '"':
return '"'
case '&':
return '&'
}
})
}
module.exports = {
htmlEscape,
htmlUnEscape
}
注册npm账号
访问https://www.npmjs.com/网站,点击sign up,进入注册用户页面
注意:最后要登录邮箱,点击验证链接,进行账号的验证,否则后面发布包的时候会报错
登录npm账号
npm账号注册完成后,可以在终端中执行npm login命令,依次输入用户名、密码、邮箱后,即可登录。(密码是使用盲打的模式)
注意: 在运行npm login 命令之前,必须先把下包的服务器地址切换为npm的官方服务器。否则会导致发布包失败
将包发布到npm上
将终端切换到包的根目录之后,运行
npm publish
即可把包发布到npm上(注意:包名不能雷同)
删除已发布的包
npm unpublish 包名 --force
注意:
- npm unpublish命令只能删除72小时以内发布的包
- npm unpublish删除的包,在24小时内不允许重复发布
- 发布包的时候要慎重,尽量不要往npm上发布没有意义的包!