发布一个npm包,更新包,删除包

发布一个npm包,更新包,删除包

如何将自己的项目 发布为一个 npm 包 ,并掌握 更新删除 的操作流程。


🚀 一、发布一个 npm 包的完整流程

✅ 1. 注册并登录 npm 账号

如果还没有账号,先注册:

然后在终端登录:

bash 复制代码
npm login

输入用户名、密码和邮箱即可。


✅ 2. 创建你的包项目

新建一个项目目录:

bash 复制代码
mkdir my-awesome-lib
cd my-awesome-lib
npm init -y

编辑 package.json,确保以下字段有意义:

json 复制代码
{
  "name": "my-awesome-lib",     // 包名,全局唯一
  "version": "1.0.0",            // 初始版本
  "main": "index.js",            // 入口文件
  "keywords": ["utils", "tools"],
  "author": "Your Name",
  "license": "MIT"
}

创建 index.js

js 复制代码
module.exports = function sayHello(name) {
  return `Hello, ${name}!`;
};

✅ 3. 发布你的包

bash 复制代码
npm publish

🎉 成功后,你可以在 npm 官网 搜索并查看你的包!


⚠️ 注意事项(发布失败的常见原因):

  1. 包名重复(需唯一) → 可以加前缀,比如 @yourname/yourlib(私有作用域包)
  2. 没有登录
  3. 忘记上传入口文件
  4. .npmignore 忽略了必须的文件

🔄 二、更新 npm 包版本

每次发布更新必须修改 package.json 中的版本号!

bash 复制代码
npm version patch     # 小更新 1.0.0 → 1.0.1
npm version minor     # 新功能 1.0.0 → 1.1.0
npm version major     # 大版本变更 1.0.0 → 2.0.0

然后再次发布:

bash 复制代码
npm publish

❌ 三、删除一个 npm 包(谨慎操作)

⚠️ npm 官方限制:包发布后 72 小时内才能删除;超时只能 unpublish 某个版本

✅ 删除整个包(必须在 72 小时内):

bash 复制代码
npm unpublish my-awesome-lib --force

✅ 删除特定版本:

bash 复制代码
npm unpublish my-awesome-lib@1.0.0

🔒 一旦超时,建议:

  • 发新版本修复
  • 添加 deprecated 标记:
bash 复制代码
npm deprecate my-awesome-lib@"<1.1.0" "This version has critical bugs, please update to 1.1.0+"

🧪 练习建议

  1. 新建一个包目录
  2. 发布一个简单的工具函数(如格式化日期、加法函数)
  3. 尝试更新一个版本
  4. 使用其他项目 npm install 引用它
相关推荐
小胖霞2 分钟前
全栈系列(15)github Actions自动化部署前端vue
前端·node.js·github
未来魔导2 分钟前
基于 Gin 框架的 大型 Web 项目推荐架构目录结
前端·架构·gin
foundbug99925 分钟前
Modbus协议C语言实现(易于移植版本)
java·c语言·前端
Luna-player26 分钟前
在前端中list.map的用法
前端·数据结构·list
用户479492835691530 分钟前
面试官问 React Fiber,这一篇文章就够了
前端·javascript·react.js
小徐_233341 分钟前
Gemini 3做粒子交互特效很出圈?拿 TRAE SOLO 来实现一波!
前端·ai编程·trae
LYFlied42 分钟前
【一句话概述】Webpack、Vite、Rollup 核心区别
前端·webpack·node.js·rollup·vite·打包·一句话概述
reddingtons1 小时前
PS 参考图像:线稿上色太慢?AI 3秒“喂”出精细厚涂
前端·人工智能·游戏·ui·aigc·游戏策划·游戏美术
一水鉴天1 小时前
整体设计 定稿 之23+ dashboard.html 增加三层次动态记录体系仪表盘 之2 程序 (Q199 之2) (codebuddy)
开发语言·前端·javascript
刘发财1 小时前
前端一行代码生成数千页PDF,dompdf.js新增分页功能
前端·typescript·开源