Nodejs学习笔记npm与包

导读:本篇文章讲解 Nodejs学习笔记npm与包,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

  6. 在 index.js 中定义还原 HTML 的方法
    // 定义还原 HTML 字符的函数
    function htmlUnEscape(str) {
        return str.replace(/&lt;|&gt;|&quot;|&quot;/g, match => {
            switch (match) {
                case '&lt;':
                    return '<   '
                case '&gt;':
                    return '>'
                case '&quot;':
                    return '"'
                case '&amp;':
                    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中的特殊字符、开源协议
    Nodejs学习笔记npm与包

     

发布包

  1. 注册npm账号

    Nodejs学习笔记npm与包

  2. 登录账号

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

    Nodejs学习笔记npm与包

  3. 把包发布到 npm 上

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

    Nodejs学习笔记npm与包

  4. 查看发布的包

    Nodejs学习笔记npm与包

    Nodejs学习笔记npm与包

    Nodejs学习笔记npm与包

  5. 删除已发布的包

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

    Nodejs学习笔记npm与包

    注意:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/4539.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!