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 包的方法,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。

相关文章
|
1月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
285 2
|
15天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
15天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
25 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
24天前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
60 10
|
21天前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
1月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
1月前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
24 1
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
456 1
|
1月前
|
Web App开发 JSON JavaScript
深入浅出:Node.js后端开发入门与实践
【10月更文挑战第4天】在这个数字信息爆炸的时代,了解如何构建一个高效、稳定的后端系统对于开发者来说至关重要。本文将引导你步入Node.js的世界,通过浅显易懂的语言和逐步深入的内容组织,让你不仅理解Node.js的基本概念,还能掌握如何使用它来构建一个简单的后端服务。从安装Node.js到实现一个“Hello World”程序,再到处理HTTP请求,文章将带你一步步走进Node.js的大门。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开一扇通往后端开发新世界的大门。
|
1月前
|
前端开发 JavaScript 安全
JavaScript代码混淆入门
JavaScript代码混淆是Web应用安全防护的重要一环,通过一系列技术手段提高代码的防护能力。正确应用混淆策略不仅能有效阻止或延缓恶意攻击,还能在一定程度上保护开发者的核心技术和商业秘密。然而,需要注意的是,混淆并非绝对安全,应将其视为整体安全策略的一部分,结合其他防御措施共同构建坚固的安全防线。
62 0