Node.js学习笔记——npm与包

 npm与包

开发属于自己的包

  1. 需要实现的功能

    1. 格式化日期

    2. 转义HTML中的特殊字符

    3. 还原HTML中的特殊字符

  2. 初始化包的基本结构

    1. 新建theima-tools文件夹,作为包的根目录

    2. 在theima-tools文件夹中,新建如下三个文件

      • package.json(包管理配置文件)

      • index.js(包的入口文件)

      • README.md(包的说明文档)

  3. 初始化package.json

    {
        "name": "theima-tools",
        "version": "1.0.0",
        "main": "index.js",
        "description": "提供了格试化时间、HTMLEscapef的功能",
        "keywords": [
            "theima",
            "dateFormat",
            "escape"
        ],
        "license": "ISC"
    }


    包的名称 name ,注意文件夹的名称和 name名称没关系。编写自己的包名之前要去官网查一遍,因为包名不能重复。
    包的版本 version ,默认从1.0.0开始
    包的入口文件 main
    包的描述信息 description
    搜索关键字 keywords
    包遵守的开源许可协议 license ,npm官方推荐ISC

  4. 在 index.js 中定义格式化时间的方法
    // 定义格式化时间的函数
    function dataFormat(dataStr) {
        const dt = new Date(dataStr)
    
        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
    }

  5. 在 index.js 中定义转义 HTML 的方法
    // 定义转义 HTML 字符的函数
    function htmlEscape(htmlStr) {
        return htmlStr.replace(/<|>|"|&/g, match => {
            switch (match) {
                case '<':
                    return '<'
                case '>':
                    return '>'
                case '"':
                    return '"'
                case '&':
                    return '&'
    
            }
        })
    }
    

  6. 在 index.js 中定义还原 HTML 的方法
    // 定义还原 HTML 字符的函数
    function htmlUnEscape(str) {
        return str.replace(/<|>|"|"/g, match => {
            switch (match) {
                case '<':
                    return '<   '
                case '>':
                    return '>'
                case '"':
                    return '"'
                case '&':
                    return '&'
    
            }
        })
    }
    

  7. 将不同的功能进行模块化拆分

    1. 将格式化时间的功能,拆分到 src->dateFormat.js

    2. 将处理HTML字符串的功能,拆分到 src->htmlEscape.js

    3. 在index.js中,导入两个模块,得到需要向外共享的方法

    4. 在index.js中,使用module..exports把对应的方法共享出去

  8. 编写包的说明文档

    包根目录中的 README.md 文件,是包的使用说明文档。通过它,我们可以事先把包的使用说明,以markdown的格式写出来,方便用户参考。

    README文件中具体写什么内容,没有强制性的要求;只要能够清晰地把包的作用、用法、注意事项等描述清楚即可。

    我们所创建的这个包的README.md文档中,会包含以下6项内容:

    安装方式、导入方式、格式化时间、转义HTML中的特殊字符、还原HTML中的特殊字符、开源协议
    Node.js学习笔记——npm与包_第1张图片

发布包

  1. 注册npm账号

    Node.js学习笔记——npm与包_第2张图片

  2. 登录账号

    npm账号注册完成后,可以在终端中执行  npm login  命令,依次输入用户名、密码、邮箱后,即可登录成功。

    Node.js学习笔记——npm与包_第3张图片

  3. 把包发布到 npm 上

    将终端切换到包的根目录之后,运行 npm publish 命令,即可将包发布到 npm 上(注意:包名不能雷同)。

    Node.js学习笔记——npm与包_第4张图片

  4. 查看发布的包

    Node.js学习笔记——npm与包_第5张图片

    Node.js学习笔记——npm与包_第6张图片

    Node.js学习笔记——npm与包_第7张图片

  5. 删除已发布的包

    运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包

    注意:

    1. npm unpublish 命令只能删除72小时以内发布的包

    2. npm unpublish 删除的包,在24小时内不允许重复发布

    3. 发布包的时候要慎重,尽量不要往npm上发布没有意义的包!!!


学习视频:https://www.bilibili.com/video/BV1a34y167AZ?spm_id_from=333.999.0.0

你可能感兴趣的:(Node.js,学习笔记,node.js)