开发属于自己的包
初始化包的基本结构
1.新建itheima-tools文件夹,作为包的根目录
 2.在itheima-tools文件夹中,新建如下三个文件:
 package.json(包管理配置文件)
 index.js(包的入口文件)
 README.md(包的说明文档)
 举例:
//package.json文件
{
//包的名称,不能重复
  "name":"tai-tools",
  //初始版本号
  "version":"1.0.0",
  //指定包的入口文件
  "main":"index.js",
  //描述信息
  "description": "提供了格式化时间,HTMLEscape的功能",
  //数组关键字
  "keywords": ["itheima","dataFormat","escape"],
  //包遵循的开源许可协议 默认ISC
  "license": "ISC"
}
 
创建包:
//这是包的入口文件、
//定义格式化时间的函数
function dateFormat(dateStr)
{
  const dt=new Date(dateStr)
  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} `
}
//定义一个补0的函数
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 '&'
    }
   
  })
}
// 向外暴露需要的成员
module.exports={
  dateFormat,
  htmlEscape
}
 
使用包:
const itheima = require('./tai-tools/')
// 格式化时间的功能
const dtStr = itheima.dateFormat(new Date())
console.log(dtStr)
console.log('-----------')
const htmlStr = '<h1 title="abc">这是h1标签<span>123 </span></h1>'
const str = itheima.htmlEscape(htmlStr)
console.log(str)
console.log('-----------')
 
模块化拆分包
举例:创建一个与index.js同级的src文件夹。里面用来存放函数包
在src目录下创建dataFormat.js
// 定义格式化时间的函数
function dateFormat(dateStr) {
  const dt = new Date(dateStr)
  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
}
 
修改index.js文件
// 这是包的入口文件
const date = require('./src/dateFormat')
// 向外暴露需要的成员
module.exports = {
//...表示展开运算符
  ...date,
}
 
照常使用
编写包的说明文档
包括以下的内容:
 安装方式、导入方式、封装的函数、开源协议
发布包
1.在终端登录npm账号
npm账号注册完成后,可以在终端中执行npm login 命令,依次输入用户名、密码、邮箱后,即可登录成功
 注意:在运行npm login命令之前,必须先把下包的服务器地址切换为npm的官方服务器。否则会导致发布包失败
2.把包发布到npm上
将终端切换到包的根目录上,运行npm publish命令,即可将包发布到npm上(注意:包名不能雷同)
 
 
删除已经发布的包
运行npm unpublish 包名 --force 命令 就可以从npm删除已经发布的包
 注意:
 ①npm unpublish命令只能删除72小时以内发布的包
 ②npm unpublish删除的包,在24小时内不允许重复发布
 ③发布包的时候要慎重,尽量不要在npm上发布没有意义的包










