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

相关文章
|
2月前
|
JavaScript
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
|
28天前
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
|
30天前
|
JavaScript
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
103 26
|
23天前
|
存储 资源调度 JavaScript
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具。npm 是官方默认的包管理器,提供依赖管理、安装和更新等功能;cnpm 是由阿里巴巴开发的 npm 镜像,专为中国大陆用户优化,解决下载速度慢的问题;pnpm 通过硬链接技术提高安装速度并节省磁盘空间,特别适合磁盘资源紧张的环境。三者命令类似,但各有特色,开发者可根据需求选择合适的工具。
74 5
|
3月前
|
Web App开发 JavaScript 前端开发
如何学习JavaScript?
如何学习JavaScript?
64 5
|
3月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
43 2
|
3月前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
64 1
|
4月前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
42 2
|
4月前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
211 0
|
4月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
73 0

热门文章

最新文章