打包发布npm包

开发属于自己的包

初始化包的基本结构

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上发布没有意义的包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用npm打包vite需要执行以下命令:npm init vite [project-name。其中,是你想要创建的项目名称。这个命令会使用create-vite中的create-vite命令来创建一个名为的vite项目。另外,你也可以使用npm exec create-vite [project-name来达到相同的效果。所以,执行npm create vite命令实际上是执行了npm exec create-vite命令来创建vite项目。npm init命令在这里充当了执行命令的作用。需要注意的是,如果你在国内使用npm,可能需要将npm镜像源切换到官方源,以便能够正常发布npm。可以使用npm config set registry=https://registry.npmjs.org命令来切换镜像源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [“npm create vite“ 是如何实现初始化 Vite 项目?](https://blog.csdn.net/Cyj1414589221/article/details/128191826)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [使用vite构建Vue3组件库,发布npm](https://blog.csdn.net/y227766/article/details/126426546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值