node.js实现自定义npm包并发布

我们在使用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
相关推荐
小磊哥er7 分钟前
深入解构Claude Code - 第 2 篇 · 启动的秘密
javascript·ai编程
雪芽蓝域zzs19 分钟前
第八节:Element Plus 基础、封装通用组件 + 路由守卫
前端·vue.js
码视野21 分钟前
基于 Spring Boot + Vue3 的【智慧公厕微负压排风除臭与客流人感空间占用导引中台】设计与实现(含PRD/三端高保真源码/大屏)
前端·vue.js·人工智能·spring boot·后端
计算机魔术师39 分钟前
刚赔了15亿又来被告?索尼华纳联手把Anthropic告上法庭
前端
笑霸final41 分钟前
不用上传服务器!用 Vue3 + ONNX Runtime Web 在浏览器本地实现智能抠图
运维·前端·图像处理·ai·onnx·canva可画·web性能优化
月月大王的3D日记1 小时前
Three.js 入门系列(9):从零搭一座“闹鬼小屋”
前端·javascript
TingTing1 小时前
Vue3动态组件库建设
前端
码上暴富1 小时前
Cursor / VS Code 自定义文件颜色
前端·vscode
开开心心就好2 小时前
电子教鞭工具支持画框写字插图片功能齐全
android·开发语言·前端·javascript·人工智能·pdf·html
Dovis(誓平步青云)2 小时前
拍视频前先把镜头想清楚:做一个分镜取景辅助器
android·java·服务器·javascript·人工智能