[Node]制作一个node包并且传到npm仓库,并把md文件转化为html

2022/1/23 20:08:10

本文主要是介绍[Node]制作一个node包并且传到npm仓库,并把md文件转化为html,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 背景
  • 步骤
    • 导入
    • 代码片段
      • 格式化代码
    • 具体代码
    • 拆分
    • 发布
  • 补充知识
    • md转化为html

背景

开发一个自己的包的步骤,以my-tools为例子

步骤

  1. 新建一个文件,eg:my-tools
    先去https://www.npmjs.com/查询自己命名自的保名字是否有重复的)
  2. npm init -y 初始化文件夹,生产package.json文件,并填写参数
    name是包的名字
    main是包的入口文件
    description报的描述
    keywords是使用时的关键字
    license是包遵循的协议
    在这里插入图片描述
  3. 创建index.js和readme.md文件,至此文件目录搭建完毕
    前者入口文件,后者是包的说明

导入

const mytools = require('./my-tools/index')

代码片段

格式化代码

readme.md
在这里插入图片描述
在这里插入图片描述

具体代码

index.js

	//格式化时间
	// 1. 定义格式化时间的方法
	function dateFormat(dtStr) {
	  const dt = new Date(dtStr)
	  console.log(dt)
	  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
	}
	//转义html
	//replace(正则,替换的格式)
	//正则里面,|表示或,g表示全局
	function htmlEscape(htmlStr) {
	  return htmlStr.replace(/<|>|"|&/g, (match) => {
	    switch (match) {
	      case '<':
	        return 'A'
	      case '>':
	        return 'B'
	      case '"':
	        return 'CC'
	      case '&':
	        return 'DDDDD'
	    }
	  })
	}
	//还原html
	
	function htmlUnEscape(str) {
	  return str.replace(/A|B|CC|DDDDD/g, (match) => {
	    switch (match) {
	      case 'A':
	        return '<'
	      case 'B':
	        return '>'
	      case 'CC':
	        return '"'
	      case 'DDDDD':
	        return '&'
	    }
	  })
	}
	
	module.exports = {
	  dateFormat,
	  htmlEscape,
	  htmlUnEscape,
	}

test.js

	const mytools = require('./my-tools/')
	//自动通过main查询到index.js文件
	// 测试时间
	const dt = new Date()
	const dtStr = mytools.dateFormat(dt)
	console.log(dtStr)
	
	//转义html
	
	const htmlStr = '<h1 title="abc">标签鸭<span>123</span></h1>'
	
	const hStr = mytools.htmlEscape(htmlStr)
	console.log(hStr)
	
	//还原html(Ah1 title=CCabcCCB标签鸭AspanB123A/spanBA/h1B)
	
	const zStr = mytools.htmlUnEscape(hStr)
	
	console.log(zStr)
	

拆分

目录
在这里插入图片描述
dateFormat.js

//格式化时间
// 1. 定义格式化时间的方法
function dateFormat(dtStr) {
  const dt = new Date(dtStr)
  console.log(dt)
  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
//replace(正则,替换的格式)
//正则里面,|表示或,g表示全局
function htmlEscape(htmlStr) {
  return htmlStr.replace(/<|>|"|&/g, (match) => {
    switch (match) {
      case '<':
        return 'A'
      case '>':
        return 'B'
      case '"':
        return 'CC'
      case '&':
        return 'DDDDD'
    }
  })
}
//还原html

function htmlUnEscape(str) {
  return str.replace(/A|B|CC|DDDDD/g, (match) => {
    switch (match) {
      case 'A':
        return '<'
      case 'B':
        return '>'
      case 'CC':
        return '"'
      case 'DDDDD':
        return '&'
    }
  })
}
module.exports = {
  htmlEscape,
  htmlUnEscape,
}

index.js

const data = require('./src/dateFormat')
const escape = require('./src/htmlEscape')

module.exports = {
  ...data,
  ...escape,
}

test.js不变化

发布

  1. 注册账号1. 注册账号
  2. 使用nrm把npm包换成官网镜像
nrm use npm 
  1. 登录并且发布
    登录的时候可能,问你再要一次密码,登录邮箱获取。
    包名,不能和其他包名重合,如果类似,需要修改名字
npm login
npm publish --access=public

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 卸载已经上传的包
    因为下面命令只能删除3天内发布的包,所以不要上传没有意义的包
    其次是已经卸载的包,一天内不能再次上传
    (我上传的那个是为了学习,马上就会卸载)
    npm unpublish 包名 --force
    
    在这里插入图片描述

补充知识

md转化为html

安装 i5ting_toc会把md文件转化成html
使用方式

npm i -g  i5ting_toc
//转换完成后,-o自动打开
 i5ting_toc -f md文件 -o


这篇关于[Node]制作一个node包并且传到npm仓库,并把md文件转化为html的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程