Node.js学习笔记_No.05

npm与包

包的分类

使用npm管理工具下载的包,共分为两大类,分别是:

  1. 项目包
    安装到项目的node_modules目录中的包,都是项目包
  • 开发依赖包(记录在devDependencies,开发期间用到)npm i 包名 -D
  • 核心依赖包(记录在dependencies,在开发和项目上线之后都会用)npm i 包名
  1. 全局包
    在执行npm i命令时,如果提供了 -g参数,则会把包安装为全局包
    全局包会被安装到C:\Users\用户目录\AppData\Roaming\npm\node_modules目录下
npm i 包名 -g #全局安装指定的包
npm uninstall 包名 -g # 卸载全局安装的包

注意:

①只有工具性质的包,才有全局安装的必要性。因为他们提供了好用的终端命令;
②判断某个包是否需要全局安装后才使用,可以参考官方提供的使用说明即可。


i5ting_toc

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这三个属性,分别代表包的名字,版本号,包的入口;


开发包

1、初始化包的基本结构

①新建diluc-tools文件夹,作为包的根目录;
②在diluc-tools文件夹中,新建如下三个文件:

  • package.json(包管理配置文件)
  • index.js(包的入口文件)
  • README.md(包的说明文档)

2、初始化package.json文件

{
    "name": "diluc-tools",
    "version": "1.0.0",
    "main": "index.js",
    "description": "提供了格式化时间、HTMLEscape相关的功能",
    "keywords": [
        "diluc",
        "keqing",
        "kaiya"
    ],
    "license": "ISC"
}

3、在index.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
}

//定义转义 HTML 字符的函数
function htmlEscape(htmlstr) {
    return htmlstr.replace(/<|>|&|"/g, (match) => {
        switch (match) {
            case '<':
                return '&lt;'
            case '>':
                return '&gt;'
            case '"':
                return '&quot;'
            case '&':
                return '&amp;'
        }
    })
}

//定义还原转义 HTML 字符的函数
function htmlUnEscape(htmlstr) {
    return htmlstr.replace(/&lt;|&gt;|&amp;|&quot;/g, (match) => {
        switch (match) {
            case '&lt;':
                return '<'
            case '&gt;':
                return '>'
            case '&quot;':
                return '"'
            case '&amp;':
                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 '&lt;'
            case '>':
                return '&gt;'
            case '"':
                return '&quot;'
            case '&':
                return '&amp;'
        }
    })
}

//定义还原转义 HTML 字符的函数
function htmlUnEscape(htmlstr) {
    return htmlstr.replace(/&lt;|&gt;|&amp;|&quot;/g, (match) => {
        switch (match) {
            case '&lt;':
                return '<'
            case '&gt;':
                return '>'
            case '&quot;':
                return '"'
            case '&amp;':
                return '&'
        }
    })
}

module.exports = {
    htmlEscape,
    htmlUnEscape
}

index.js

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

module.exports = {
    ...date,
    ...escape//... 展开属性
}

4、编写使用文档

在这里插入图片描述

5、发布包

终端中登录npm
npm login

注意:运行前需将下包的服务器地址切换到npm官方服务器

发布
npm publish
删除已发布的包
npm unpublish 包名 --force

注意:只能删除72h内发布的包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值