ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

打包发布npm包

2022-01-19 18:59:35  阅读:183  来源: 互联网

标签:npm const padZero 发布 itheima return dt 打包


开发属于自己的包

初始化包的基本结构

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 '&lt;'
      case '>':
        return '&gt;'
      case '"':
        return '&quot;'
      case '&':
        return '&amp;'
    }

   
  })
}

// 向外暴露需要的成员
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&nbsp;</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上发布没有意义的包

标签:npm,const,padZero,发布,itheima,return,dt,打包
来源: https://blog.csdn.net/m0_51195865/article/details/122583767

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有