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 包的方法,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。
我的其他文章:https://blog.csdn.net/weixin_62897746?type=blog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风 与我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值