如何发布自己的npm包

一、什么是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.js
    test 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.kler.cn/a/436.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于MFC的JavaScript进行网页数据交互

目录 前言 一、创建html对话框工程 二、使用步骤 1.引入JavaScript接口代码 2.重写相关接口 3.在html网页中添加C/C调用的接口 4.在MFC工程中添加调用接口 5.设置确认按键触发调用 6.运行结果 总结 前言 如何快速的进行MFC开发,这里我介绍一种JavaScript与C/C交互的…

2023-03-15:屏幕录制并且显示视频,不要用命令。代码用go语言编写。

2023-03-15:屏幕录制并且显示视频,不要用命令。代码用go语言编写。 答案2023-03-15: 使用moonfdd/ffmpeg-go和moonfdd/sdl2-go库来实现屏幕录制并显示视频,大体流程如下: 1.使用libavdevice库中的AVInputFormat&…

【C++】STL简介 及 string的使用

文章目录1. STL简介1.1 什么是STL1.2 STL的版本1.3 STL的六大组件2. string类的使用2.1 C语言中的字符串2.2 标准库中的string类2.3 string类的常用接口说明1. string类对象的常见构造2. string类对象的容量操作3. string类对象的修改操作4. resize和reserve5. 认识迭代器&…

爽,我终于掌握了selenium图片滑块验证码

因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇文章主要是用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方&#x…

程序是怎样跑起来的(2)

操作系统和应用的关系操作系统确实为程序员提供了很多方便。不过,仅仅享受方便是不行 的,还要了解为什么自己能够这么方便。了解了这一点,就可以尽情 地享受方便了 系统调用和高级编程语言的移植性操作系统的硬件控制功能,通常是通…

全网独家首发|极致版YOLOv7改进大提升(推荐)网络配置文件仅24层!更清晰更方便更快的改进YOLOv7网络模型

有不少小伙伴和我交流YOLO改进的时候,都说YOLOv7的网络配置文件长达104层,改起来很费力,数层数都要数很久,还很容易出错,而且基于YOLOv5代码架构,Debug起来也确实比较费时,所以博主对YOLOv7网络…

Linux中sudo,su与su -命令的区别

前言 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户tom登录的,但要添加用户任务,执行useradd ,tom用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出tom用…

Qt之高仿QQ系统设置界面

QQ或360安全卫士的设置界面都是非常有特点的,所有的配置项都在一个垂直的ScrollArea中,但是又能通过左侧的导航栏点击定位。这样做的好处是既方便查看指定配置项,又方便查看所有配置项。 一.效果 下面左边是当前最新版QQ的系统设置界面,右边是我的高仿版本,几乎一毛一样…

springboot vue3 前端调用后端接口 传参问题

一、出现的问题今天写毕设的时候传参遇到了一个问题用单个参数传输没有遇到 ,,只有当使用到对象传参的的时候会出现问题直接看前端代码然后去浏览器进行操作这里我只修改了一个名称去后端编译器查看日志发现一直没有传过去数据然后使用qs转化之后就好使了…

算法刷题总结 (四) 动态规划

算法总结4 动态规划一、动态规划1.1、基础问题11.1.1、509. 斐波那契数列1.1.2、70. 爬楼梯1.1.3、746. 使用最小花费爬楼梯1.2、基础问题21.2.1、62. 不同路径1.2.2、63. 不同路径Ⅱ1.2.3、343. 整数拆分1.2.4、96. 不同的二叉搜索树1.3、背包问题1.3.1、01背包1.3.1.1、单次选…

计算机组成原理(2.1)--系统总线

目录 一、总线基本知识 1.总线 2.总线的信息传送 3.分散连接图 4.注 二、总线结构的计算机举例 1.面向 CPU 的双总线结构框图 2.单总线结构框图 3.以存储器为中心的双总线结构框图 三、总线的分类 1.片内总线 2.系统总线 (板级总线或板间总线&#…

Python基础—面向对象(超详版)

Python基础—面向对象面向对象简介什么是面向对象类与对象父类与子类面向对象的特性单继承与多继承单继承多继承多层继承封装多态重写与调用python重写python调用super函数前言: 🏠个人主页:以山河作礼。 📝​📝​此专…

理清gcc、g++、libc、glibc、libstdc++的关系

0 理清gcc、g++、libc、glibc、libstdc++的关系 0.1 $ dpkg -L libc6 $ dpkg -L libc6 /lib/x86_64-linux-gnu /lib/x86_64-linux-gnu/ld-2.31.so /lib/x86_64-linux-gnu/libBrokenLocale-2.31.so /lib/x86_64-linux-gnu/libSegFault.so /lib/x86_64-linux-gnu/libanl-2.31.s…

乐吾乐2d可视化之智慧城市可视化(二)

✍️ 作者简介: 前端博主;CSDN博客专家;51CTO特邀专家博主,全网粉丝2W;💂 作者主页: 【主页——🚀获取更多web可视化介绍】🥇联系作者:【私信:技术交流 | 信息分享 | 商务…

UE实现建筑生长(材质遮罩方式)效果

文章目录 1.实现目标2.实现过程2.1 遮罩2.2 生长动画3.参考资料1.实现目标 在UE中实现建筑的生成动画效果,GIF动图如下: 2.实现过程 通过动态设置材质遮罩OpacityMask的参数,即通过材质方式来实现建筑生长效果 2.1 遮罩 现有的教程中大多通过BoxMask-3D材质节点实现,但是…

java入门多线程一文通

一、面试经典 1.为什么使用多线程及其重要 为了使用户体验更好,服务的相应速度更快。现如今硬件不断发展,软件要求也逐渐提高,都是为了一个字:快。 2.进程、线程、管程(monitor 监视器) 3.多线程并行和…

接口文档包含哪些内容?怎么才能写好接口文档?十年测试老司机来告诉你

目录 接口文档结构 参数说明 示例 错误码说明 语言基调通俗易懂 及时更新与维护 总结 那么我们该如何写好一份优秀的接口文档呢? 接口文档结构 首先我们要知道文档结构是什么样子的。接口文档应该有清晰明确的结构,以便开发人员能快速定位自己需…

C/C++每日一练(20230314)

目录 1. 移动数组中的元素 2. 搜索二维矩阵 3. 三角形最小路径和 🌟 每日一练刷题专栏 🌟 Golang 每日一练 专栏 C/C 每日一练 ​专栏 Python 每日一练 专栏 Java 每日一练 专栏 1. 移动数组中的元素 将一维数组中的元素循环左移 k 个位置 输入…

CANoe中使用CAPL刷写流程详解(Trace图解)(CAN总线)

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

一个Bug让人类科技倒退几十年?

大家好,我是良许。 前几天在直播的时候,问了直播间的小伙伴有没人知道「千年虫」这种神奇的「生物」的,居然没有一人能够答得上来的。 所以,今天就跟大家科普一下这个人类历史上最大的 Bug 。 1. 全世界的恐慌 一个Bug会让人类…
最新文章