使用npm管理工具下载的包,共分为两大类,分别是:
node_modules目录中的包,都是项目包npm i 包名 -Dnpm i 包名npm i命令时,如果提供了 -g参数,则会把包安装为全局包C:\Users\用户目录\AppData\Roaming\npm\node_modules目录下npm i 包名 -g #全局安装指定的包
npm uninstall 包名 -g # 卸载全局安装的包
注意:
①只有工具性质的包,才有全局安装的必要性。因为他们提供了好用的终端命令;
②判断某个包是否需要全局安装后才使用,可以参考官方提供的使用说明即可。
i5ting_toc是一个可以把md文档转为html页面的小工具
# 将 i5ting_toc 安装为全局包
npm install -g i5ting_toc
# 调用 i5ting_toc,轻松实现 md 转html 的功能
i5ting_toc -f 要转换的md文件路径 -o
规范的包:
①包必须以单独的目录而存在;
②报的顶级目录必须包含package.json这个包管理配置文件
③package.json中必须包含name,version,main这三个属性,分别代表包的名字,版本号,包的入口;
①新建diluc-tools文件夹,作为包的根目录;
②在diluc-tools文件夹中,新建如下三个文件:
package.json文件{
"name": "diluc-tools",
"version": "1.0.0",
"main": "index.js",
"description": "提供了格式化时间、HTMLEscape相关的功能",
"keywords": [
"diluc",
"keqing",
"kaiya"
],
"license": "ISC"
}
//格式化时间的方法
function dateFormat(dateStr) {
const dt = new Date(dateStr)
const y = padZero(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
}
//定义转义 HTML 字符的函数
function htmlEscape(htmlstr) {
return htmlstr.replace(/<|>|&|"/g, (match) => {
switch (match) {
case '<':
return '<'
case '>':
return '>'
case '"':
return '"'
case '&':
return '&'
}
})
}
//定义还原转义 HTML 字符的函数
function htmlUnEscape(htmlstr) {
return htmlstr.replace(/<|>|&|"/g, (match) => {
switch (match) {
case '<':
return '<'
case '>':
return '>'
case '"':
return '"'
case '&':
return '&'
}
})
}
module.exports = {
dateFormat,
htmlEscape,
htmlUnEscape
}

dateFormat.js
//格式化时间的方法
function dateFormat(dateStr) {
const dt = new Date(dateStr)
const y = padZero(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(htmlstr) {
return htmlstr.replace(/<|>|&|"/g, (match) => {
switch (match) {
case '<':
return '<'
case '>':
return '>'
case '"':
return '"'
case '&':
return '&'
}
})
}
module.exports = {
htmlEscape,
htmlUnEscape
}
index.js
const date = require('./src/dateFormat')
const escape = require('./src/htmlEscape')
module.exports = {
...date,
...escape//... 展开属性
}

npm login
注意:运行前需将下包的服务器地址切换到npm官方服务器
npm publish
npm unpublish 包名 --force
注意:只能删除72h内发布的包