node.js 学习入门(06 - 发布自己的 npm 包)

简介: node.js 学习入门(06 - 发布自己的 npm 包)

注册一个 npm 账号

去官网 https://www.npmjs.com/ 注册一个账号

新建一个项目

在本地创建一个文件夹,然后进入终端

注意:文件夹的名称不能和已经发布包的名称重复,发布之前先到 npm 里搜索一下创建的文件夹名,查看名称是否重复。

创建一个 package.json 文件,内容为:

{
    "name":"wsh-tools",  // 发布包的名称
    "version": "1.0.0", // 模块的版本
    "main": "index.js", // 应用程序的入口文件
    "description": "提供了格式化时间、HTMLEscape相关的功能", // 模块文字说明
    "keywords": ["itheima","dateFormat","escape"], // 出现在 npm search 中的关键字
    "license": "ISC" // 开源协议
}
  • 创建包的入口文件,打开文件夹创建一个 index.js 文件,内容为:
// 这是包的入口文件
const date = require('./dateFormat')
const escape = require('./htmlEscape')
// 向外暴露需要的成员
module.exports = {
    ...date,
    ...escape
}

创建主逻辑代码

dateFormat 文件:

// 定义格式化时间的函数
function dateFormat(dataStr) {
    const dt = new Date(dataStr)
    const y = dt.getFullYear()
    const m = padZeor(dt.getMonth() + 1)
    const d = padZeor(dt.getDate()
)
    const hh = padZeor(dt.getHours())
    const mm = padZeor(dt.getMinutes())
    const ss = padZeor(dt.getSeconds())
    return `${y}年${m}月${d}日 ${hh}:${mm}:${ss}`
}
// 定义一个补零的函数
function padZeor(n) {
    return n > 9 ? n : '0' + n
}
module.exports = {
    dateFormat
}

htmlEscape文件

// 定义转义 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 str.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
}

创建 README.md 文件,内容为:

  ### 安装
  ```
  npm install wsh-tools
  ```
  ### 导入
  ```js
  const wsh = require("wsh-tools");
  ```
  ### 格式化时间
  ```js
  // 调用 dateFormat 对时间进行格式化
  const dtStr = wsh.dateFormat(new Date());
  // 结果 2022年10月12日 20:28:36
  console.log(dtStr);
  ```
  ### 转义 HTML 中的特殊字符
  ```js
  // 待转换的 HTML 字符串
  const htmlStr = '<h1 title="abc">这是h1标签&nbsp</h1>';
  // 调用 htmlEscape 方法进行转换
  const str = wsh.htmlEscape(htmlStr);
  // 转换的结果   &lt;h1 title=&quot;abc&quot;&gt;这是h1标签&amp;nbsp&lt;/h1&gt;
  console.log(str);
  ```
  ### 还原 HTML 中的特殊字符
  ```js
  // 待还原的 HTML 字符串
  const str2 = wsh.htmlUnEscape(str);
  // 输出的结果   <h1 title="abc">这是h1标签&nbsp</h1>
  console.log(str2);
  ```
  ### 开源协议
  ISC

创建完成需要发布的 npm 包后,进入新建项目的终端

  • 登录 npm 账号
    依次输入,用户名,密码,邮箱号
    密码在终端中不显示,正常写就行
    回车后需要填写 邮箱发送的验证码
npm login
  • 发布包
    把终端切换到要发布包的根目录上
    要发布包的名字不能相同
npm publish

此时在个人 npm 页面 可以看到此包

以上就是 node.js 中 发布 npm 包的方法,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。

相关文章
|
3月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
789 1
|
3月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章介绍了npm的基础知识和常用命令,包括安装包、查看包信息、管理依赖等操作,并提供了如何删除npm安装的镜像以及如何彻底删除node_modules文件夹的具体步骤。
112 2
|
3月前
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
93 2
|
3月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章是关于npm包管理工具的学习、使用指南,包括npm概述、基础命令和如何安装webpack。
88 3
npm学习一:npm 包管理工具 学习、使用。
|
2月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
4月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
本文介绍了Twaver HTML5中的拓扑元素(Element),包括网元(Element)、节点(Node)和连线(Link)的基本概念和使用方法。文章详细解释了Element的属性和方法,并通过示例代码展示了如何在React组件中创建节点、设置节点属性和样式。
66 1
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
|
3月前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
158 0
|
4月前
|
数据安全/隐私保护
发布一个npm包
发布一个npm包
130 2
|
3月前
|
Web App开发 JSON JavaScript
深入浅出:Node.js后端开发入门与实践
【10月更文挑战第4天】在这个数字信息爆炸的时代,了解如何构建一个高效、稳定的后端系统对于开发者来说至关重要。本文将引导你步入Node.js的世界,通过浅显易懂的语言和逐步深入的内容组织,让你不仅理解Node.js的基本概念,还能掌握如何使用它来构建一个简单的后端服务。从安装Node.js到实现一个“Hello World”程序,再到处理HTTP请求,文章将带你一步步走进Node.js的大门。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开一扇通往后端开发新世界的大门。
|
4月前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载

推荐镜像

更多