当前位置: 首页 > news >正文

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

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


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

✅ 1. 注册并登录 npm 账号

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

  • 官网注册:https://www.npmjs.com/signup

然后在终端登录:

npm login

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


✅ 2. 创建你的包项目

新建一个项目目录:

mkdir my-awesome-lib
cd my-awesome-lib
npm init -y

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

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

创建 index.js

module.exports = function sayHello(name) {return `Hello, ${name}!`;
};

✅ 3. 发布你的包

npm publish

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


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

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

🔄 二、更新 npm 包版本

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

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

然后再次发布:

npm publish

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

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

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

npm unpublish my-awesome-lib --force

✅ 删除特定版本:

npm unpublish my-awesome-lib@1.0.0

🔒 一旦超时,建议:

  • 发新版本修复
  • 添加 deprecated 标记:
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 引用它
http://www.xdnf.cn/news/79039.html

相关文章:

  • Python基础知识语法归纳总结(数据类型-2)
  • 开源QML控件:进度条滑动控件(含源码下载链接)
  • 【Ansible】批量管理 Windows自动化运维
  • GTS-400 系列运动控制器板(六)----修改编码器计数方向
  • UML 状态图:以共享汽车系统状态图为例
  • 全面介绍AVFilter 的添加和使用
  • 基于cubeMX的hal库STM32实现硬件IIC通信控制OLED屏
  • 实战交易策略 篇十七:翻倍黑马交易策略
  • Spring Data详解:简化数据访问层的开发实践
  • Socket
  • 【数据可视化-21】水质安全数据可视化:探索化学物质与水质安全的关联
  • python 脚本引用django中的数据库model
  • UnitTest框架
  • c语言修炼秘籍 - - 禁(进)忌(阶)秘(技)术(巧)【第七式】程序的编译
  • ARM Cortex-M (STM32)如何调试HardFault
  • vite详细打包配置,包含性能优化、资源处理...
  • 突破AI检测边界:对抗技术与学术伦理的终极博弈
  • 【HarmonyOS】ArKUI框架
  • 诠视科技MR眼镜如何使用头瞄点和UGUI交互
  • Filename too long 错误
  • XML内容解析成实体类
  • Java 中 XML 处理工具类详解
  • WHAT - 静态资源缓存穿透
  • 【音视频】音频解码实战
  • Ubuntu-Linux中vi / vim编辑文件,保存并退出
  • Cline Roo Code
  • 广告效果分析-广告点击率mysql+pandas
  • C++ linux打包运行方案(cmake)
  • vue浅试(1)
  • audio 核心服务AudioPolicyService 和AudioFlinger启动流程