如何发布自己的npm包

news/2025/2/11 19:27:14/

一、什么是npm

npm是随同nodejs一起安装的javascript包管理工具,能解决nodejs代码部署上的很多问题,常见的使用场景有以下几种:

①.允许用户从npm服务器下载别人编写的第三方包到本地使用。
②.允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。
③.允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。

二、注册npm

1.首先,在npm官网注册账号  官网地址: https://www.npmjs.com

如果之前用的淘宝镜像,需要切换npm源,否则可能报403错误,输入命令:

npm config set registry http://registry.npmjs.org

三、登录npm

 npm login    (备注: login 是 adduser 的别名,npm adduser 其行为方式完全相同)

查看登录信息 npm whoami  即可显示当前登录账户 (这一步不是必须)

四、项目初始化

执行 npm init -y  其中"-y" 表示所有选择都选 yes  ,也可执行 npm init  每项逐个配置

// 配置说明
{package name: // (默认项目名字) 也可以写其他名字version: (1.0.0) // 默认是1.0.0 , 根据具体版本变更版本号description: // 项目描述,默认为空entry point: hello.js // 入口默认文件是index.jstest command: // 测试代码git repository: // 是否托管在git远程服务上keywords: // 关键词,用于在npm网站进行搜索author: // 作者license: (ISC) // 许可证信息,可以选择适当的许可证进行开源 (默认"ISC")
}

不能发布npm仓库中已经存在的包。例如:dayjs (已经有大佬发布过了)

注意:生成的package.json 中的name名称最好和项目名称保值一致,版本号version也不能重复,每次更新版本需要变更版本号。否则会报错,npm 包名需在npm仓库中唯一,如果包名被占用需要更换包名才能发布成功。

五、发布包

在这个过程中,NPM会将目录打包为一个存档文件,然后上传到官方源仓库中。

登录npm账号,点击packages选项,即可看到已发布的包列表

六、 更新包

项目每次发布都需要更新版本号,否则也会报错

npm包修改后,手动把package.json里的version版本号修改了,或者使用以下命令自动更新版本号,再执行npm publish . 命令

升级补丁版本号(修改bug):npm version patch  // 1.0.x

升级次版本号(新增功能):npm version minor  // 1.x.0

升级主版本号(较大改版):npm version major  // x.0.0

然后在使用的项目中,重新安装包即可更新到最新版本。

七、 下架包

有两种方式可以下架已发布的npm 包

①. npm unpublish --force

②.点击npm包 --> settings ,底部会出现删除包选项,如下图:

 以上2种方式都可删除已发布的npm包。

以上就是发布npm包的流程,希望大家都能为开源社区贡献自己的一份力量!!!


http://www.ppmy.cn/news/32800.html

相关文章

数据库-JDBC技术

数据库性能最佳实践 JDBC 性能对于数据库应用程序框架的影响 JDBC驱动 是影响数据库应用程序的最重要的因素,替代方案是因为具有更好的性能 工作在哪里执行 瘦驱动 应用程序的内存占用更小,依赖数据库服务器完成更多的处理工作胖驱动 将工作从数据…

系统集成项目管理工程师:第18章项目风险管理学习笔记

第18章项目风险管理 一、目录 18.1 风险概述 18.1.1 风险的定义 18.1.2 风险的分类 18.1.3 风险的性质 18.2 项目风险管理 18.3 规划风险管理 18.3.1 规划风险管理的输入 18.3.2 规划风险管理的工具与技术 18.3.3 规划风险管理的输出 18.4 识别风险

Netty——心跳机制与断线重连

心跳机制与断线重连心跳机制IdleStateHandler客户端服务端测试正常情况异常情况总结断线重连为了保证系统的稳定性,心跳机制和断线重连可是必不可少的,而这两个在Netty中也是非常好实现的心跳机制 我们以客户端发送心跳为例,平时我们的心跳实…

vFlash软件简介

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

mysql-online-ddl是否需要rebuild

一、背景 DDL一直是DBA业务中的大项,看了TIDB的DDL讲解,恰巧我们的mysql业务大表也遇到了DDL的变更项,变更内容是将varchar(10)变更成varchar(20),这个变更通过官方文档很容易知道是不需要rebuild的(这里要注意下这个varchar(255…

【操作系统复习】ch3 内存基础

内存基础 内存存储数据与指令,如果想让数据交给cpu进行处理,需要将数据放入内存。内存一般按字/字节进行编址指令一般包含操作码以及若干参数,有些参数是存储在内存当中的,表明的就是内存的地址逻辑地址:在程序编译链…

Qt学习_08_用独立的文件存放样式表

0 前言 上一篇笔记对样式表进行了初步学习,QT学习_07_样式表的初步学习_江湖上都叫我秋博的博客-CSDN博客,在文末我们提到了“样式表肯定不能直接这么写在构造函数里面,那么多样式表看着心就堵,所以下一篇文章考虑如何把样式表用…

转解疑难杂症,详解vector迭代器失效和深浅拷贝的问题

前文http://t.csdn.cn/kVeVX——vector模拟实现本篇文章主要是针对vector中的两个比较经典的问题同时也是上一篇文章遗留下来的问题进行详细解释,第一个就是迭代器失效的问题,第二个是深浅拷贝的问题。ps:注意本文演示用的代码是上一篇vector…