npm-开发自己的包并发布

news2024/11/14 14:00:18

目录

1.开发自己的包

1.1. 需要实现的功能

1.2. 初始化包的基本结构 

1.3. 初始化 package.json 

1.4. 在 index.js 中定义格式化时间的方法

1.5. 在 定义转义 和还原HTML 的方法

1.6. 编写包的说明文档

1.7包的入口文件

2.发布自己的包

2.1注册npm账号

2.2登录npm账号

2.3发布并且查看


1.开发自己的包

1.1. 需要实现的功能

格式化日期
转义 HTML 中的 特殊字符
还原 HTML 中的 特殊字符

1.2. 初始化包的基本结构 

新建 itheimaZL -tools 文件夹,作为 包的根目录
itheimaZL -tools 文件夹中,新建如下三个文件:
  1. package.json (包管理配置文件)
  2. index.js          (包的入口文件)
  3. README.md  (包的说明文档)

 

 

1.3. 初始化 package.json 

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

1.4. index.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
}

1.5. 定义转义 和还原HTML 的方法

//定义转义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(str) {
    return htmlstr.replace(/&lt;|&gt;|&quot;|&amp;/g, (match) => {
        switch (match) {
            case '&lt;':
                return '<'
            case '&gt;':
                return '>'
            case '&quot;':
                return '"'
            case '&amp;':
                return '&'


        }
    })
}

module.exports = {
    htmlEscape,
    htmlUnEscape
}

1.6. 编写包的说明文档

## 安装
```
npm install itheimaZL-tools
```

## 导入
```
const itheima = require('itheimaZL-tools')
```

## 格式化时间
```
//调用dateFormat对时间进行格式化
const dtStr = itheima.dateFormat(new Date())
console.log(dtStr);
```

## 转移HTML中的特殊字符
```
const htmlStr = '<h1 title="abc">这是h1标签<span>123&nbsp</span></h1>'
const str = itheima.htmlEscape(htmlStr)
console.log(str)
```

##还原HTML中的特殊字符
```
const str2 = itheima.htmlUnEscape(str)
console.log(str2)
```

1.7包的入口文件

const date = require('./src/dateFormat')
const escape = require('./src/htmlEscape')
//向外面暴露需要的成员
module.exports = {
    ...date,
    ...escape
}

2.发布自己的包

2.1注册npm账号

访问 npm 网站,点击 sign up 按钮,进入注册用户界面

 

 

2.2登录npm账号

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

注意:在运行 npm login 命令之前,必须先把下包的服务器地址切换为 npm 的官方服务器。否则会导致发布包失败!

2.3发布并且查看

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/99541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter(二十):jmeter对图片验证码的处理

jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入&#xff0c;而且每次登录时图片验证码都是随机的&#xff1b;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段&#xff0c;然后再登录接口中使用&#xff1b; 通过jmeter对图片验证码…

Qt下载安装及配置教程

进入qt中文网站&#xff1a;https://www.qt.io/zh-cn/ 下载开源版 往下滑&#xff0c;下载Qt在线安装程序 它已经检测出我的是windows系统&#xff0c;直接点击download就好。如果是其它的系统&#xff0c;需要找到对应自己系统的安装包。 然后跟网速有关&#xff0c;等…

计算机毕业设计springboot+vue大学生个人财务管理系统

项目介绍 本大学生个人财务管理系统设计目标是实现收入和支出的信息化管理,提高管理效率,使得支出收入管理工作规范化、科学化、高效化。 本文研究的大学生个人财务管理系统基于springboot架构,采用JSP技术、JAVA编程语言和MYSQL数据库设计开发。通过本系统,实现了管理员和用户…

设计模式之享元模式

Flyweight design pattern 享元模式的概念、享元模式的结构、享元模式的优缺点、享元模式的使用场景、享元模式的实现示例、享元模式的源码分析 1、享元模式的概念 享元模式&#xff0c;即运用共享技术来有效的支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少…

基于nodejs博客系统的设计与实现.rar(论文+源码+ppt文档+视频录制)

第一章绪论 3 1.1项目开发的背景和意义 3 1.2国内外研究的现状 4 1.3研究的主要内容 4 第2章系统相关技术介绍 5 2.1 B/S结构技术介绍 5 2.2nodejs技术介绍 6 2.3mysql数据库 7 第三章系统分析 8 3.1可行性分析 8 3.2功能需求分析 8 3.2.1登录模块需求分析 9 3.2.2分类博客模块…

NetSuite 如何统一用户的时区

在NetSuie的原始设置中&#xff0c;用户可以设置自己的时区&#xff0c;这在单一国家的环境中实际上是个缺点。例如&#xff0c;有些客户并没有注意到自己的时区是否是本国时区&#xff0c;所以在查看系统日志时&#xff0c;发现时间不对头&#xff0c;产生了困扰。所以&#x…

操作系统,计算机网络,数据库刷题笔记13

操作系统&#xff0c;计算机网络&#xff0c;数据库刷题笔记13 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xf…

SpringBoot3.0自定义stater整合chatGPT49种应用场景代码已开源

导读 导读 | 12月总体来说互联网的技术圈是非常热闹的&#xff0c;chatGPT爆火&#xff0c;SpringBoot3.0发布等重磅陆消息续进入大家的视线&#xff0c;而本文作者将以技术整合的角度&#xff0c;带大家把最火的两个技术整合在一起。读完本文&#xff0c;你将熟悉SpringBoot3…

我的java学习

犹豫了很久&#xff0c;还是打算简述一下自己学java 的历程&#xff0c;花了些时间&#xff0c;但结果不赖 文章目录从0的开始开始加速过度项目学习懵懂的进入项目进入综合项目学习第二次学习开始从0的开始 没有计算机基础&#xff0c;英语也非常糟糕。 起初也时常在想&#x…

Java+MySQL基于SSM的高校科研仪器共享平台

随着在校学生人数的不断增加,学生的数量也在不断的增加,同时面临的就是如何更加方便快捷和高效的管理高校科研仪器的问题,传统模式的科研仪器管理明显已经不能够满足当下的需求,于是我们提出了高校科研仪器共享平台的设计与开发。 本课题是一个基于SSM的管理系统,本高校科研仪器…

架构设计(六):引入消息队列

架构设计&#xff08;六&#xff09;&#xff1a;引入消息队列 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;架构设计&#xff08;六&#xff09;&#xff1a;引入消息队列 CSDN&#xff1a;架构设计&#xff08;六&#xff09;&#xff1a;引入消息队列…

【LeetCode】1703. 得到连续 K 个 1 的最少相邻交换次数

题目描述 给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1 。每一次移动&#xff0c;你可以选择 相邻 两个数字并将它们交换。 请你返回使 nums 中包含 k 个 连续 1 的 最少 交换次数。 示例 1&#xff1a; 输入&#xff1a;nums [1,0,0,1,0,1], k 2 输出&#xf…

入门:镜像结构介绍

前面我们了解了Docker的相关基本操作&#xff0c;实际上容器的基石就是镜像&#xff0c;有了镜像才能创建对应的容器实例&#xff0c;那么我们就先从镜像的基本结构开始说起&#xff0c;我们来看看镜像到底是个什么样的存在。 我们在打包项目时&#xff0c;实际上往往需要一个基…

C++PrimerPlus 第八章 函数探幽-8.1 C++内联函数

目录 8.1 C内联函数 8.1 C内联函数 内联函数是C为提高程序运行速度所做的一项改进。常规函数和内联函数之间的主要区别不在于编写方式&#xff0c;而在于C编译器如何将它们组合到程序中。要了解内联函数与常规函数之间的区别&#xff0c;必须深入到程序内部。 编译过程的最终…

微机原理与接口技术笔记

文章目录前言储存系统与技术材料高速储存器缓冲储存器&#xff08;Cache&#xff09;材料&#xff0c;局部性&#xff0c;访问方式Cache全相联映射Cache交换与一致性单核CPU一致性处理多核CPU的MESI协议主储存器&#xff08;内存&#xff09;主要技术指标容量带宽内存模组与内存…

牛客题霸sql入门篇之条件查询(四)之高级查询

牛客题霸sql入门篇之条件查询(四)之高级查询 4 计算函数 4.1 查询GPA最高值 4.1.1 题目内容 4.1.2 示例代码 SELECT gpa FROM user_profile WHERE university复旦大学 ORDER BY gpa desc limit 1; -- LIMIT 初始位置&#xff0c;记录数 一个参数就是记录数4.1.3 运行结果 4…

Python Flask构建微信小程序订餐系统 (四)

🔥 创建微信小程序 🔥 微信开发者工具下载 并完成安装 在PyCharm 工具里面 order目录下面 创建mina 文件夹 通过微信小程序开发工具创建微信小程序工程 获取微信小程序ID

数据挖掘Java——PageRank算法的实现

一、PageRank算法的前置知识 PageRank算法&#xff1a;计算每一个网页的PageRank值&#xff0c;然后根据这个值的大小对网页的重要性进行排序。 从用户角度来看&#xff0c;一个网站就是若干页面组成的集合。然而&#xff0c;对于网站的设计者来说&#xff0c;这些页面是经过…

嵌入式系统开发笔记109:多个LED的闪烁控制

文章目录前言一、一般思路1、LED0 100ms闪烁&#xff0c;LED1 200ms闪烁2、LED0 100ms闪烁&#xff0c;LED1 300ms闪烁3、LED0 200ms闪烁&#xff0c;LED1 600ms闪烁二、通过循环变量实现1、LED0 500ms闪烁&#xff0c;LED1 700ms闪烁2、LED0 15ms闪烁&#xff0c;LED1 7ms闪烁…

Java——LRUCache

概念 简单来说&#xff0c;由于我们的空间是有限的&#xff0c;所以发明了这个数据结构&#xff0c;当我们的空间不够添加新的元素时&#xff0c;就会删除最近最少使用的元素。 其底层逻辑通过哈希表和链表共同实现。哈希表中存储链表的每一个元素&#xff0c;方便进行元素的…