我们在使用node.js的时候,经常会需要用到第三方模块,也就是npm包,需要通过 npm i 安装包之后才能使用。那我们应该怎么样写自己的npm包并发布给别人也能使用呢?
npm包模块一般包含三个文件:index.js、package.json、README.md
i **ndex.js:**js文件,主要包含实现模块功能的代码,这里以时间格式化函数为例子。
javascript
// 包的入口文件
function dateFormat(dateStr){
const dt = new Date(dateStr);
const y = dt.getFullYear()
const m = fillZero(dt.getMonth() + 1)
const d = fillZero(dt.getDate())
const hh = fillZero(dt.getHours())
const mm = fillZero(dt.getMinutes())
const ss = fillZero(dt.getSeconds())
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
// 定义一个补零的函数
function fillZero(n){
return n > 9 ? n : '0' + n
}
module.exports = {
dateFormat
}
**package.json:**json文件,主要包含包的一些基础信息。
javascript
{
"name": "xhh-code", // 包的名称
"version": "1.0.0", // 包的版本号
"main": "index.js", // 入口文件
"description": "时间格式化", // 包的描述信息
"keywords": ["xhhCode"], // 搜索关键词
"license": "ISC" // 开源协议
}
**README.md:**包的说明文件,可以自主定义一下说明信息。
javascript
<!-- 包的说明文档 -->
### 安装包
npm install xhh-code
### 导入
const xhhCode = require('xhh-code)
### 调用格式化时间方法
xhhCode.dateFormat(new Date())
### 开源协议
ISC
要发布npm包,我们需要注册npm账号(https://www.npmjs.com/),注册完成后,我们需要在本地终端执行 npm login 命令进行登录,这里需要注意的是,要查看本地的npm镜像是不是npm的官方服务器,如果不是的话需要切换到官方服务器。
javascript
// 查看当前镜像
npm config get registry
//切换镜像
npm config set registry https://registry.npmjs.org/
执行npm login命令完成登录操作
最后,执行 npm publish 命令发布包
删除包的命令语句
javascript
npm unpublish 包名 --force