图文并茂教你如何发布自己的NPM包(GitHub Packages npm 包发布)

news/2025/1/17 16:00:05/文章来源:https://www.cnblogs.com/sugartang/p/18516683

前情提要

发布包到npm也好,到github packages仓库也好,都是一样的道理,只是仓库地址不一样而已,本文是将npm包发布到了GitHub Packages~

GitHub Packages 简介

GitHub Packages 是一种软件包托管服务,和npm类似,允许您私下或公开托管软件包,并将包用作项目中的依赖项。

快速上手

仓库准备

大家看一下:未发过包的仓库是下面这个样子

准备好自己需要发包的项目

切换为私有仓库

npm config set registry https://私有的git仓库.com/_registry/npm

获取当前npm仓库地址

npm config get registry

生成登录秘钥

登录

npm login

实际登录案例

PS C:\Users\test-layout> npm login
npm WARN adduser `adduser` will be split into `login` and `register` in a future version. `adduser` will become an alias of `register`. `login` (currently an alias) will become its own command.
npm notice Log in on https://test.com/_registry/npm
Username: xiaojin
Password:
Email: (this IS public) AA@cn.AA.com
Logged in as xiaojin on https://test.com/_registry/npm.
PS C:\Users\test-layout> 

准备 package.json 文件:

package.json 是描述 NPM 包的核心文件,需要包含下面字段:

  • name:插件的名称,必须唯一且没有与其他包冲突。
  • version:插件的版本号,遵循语义化版本规则。
  • description:插件的简短描述。
  • main:指向插件的入口文件。
  • keywords:插件的关键词,有助于搜索引擎发现你的包。
  • author 和 license:插件的作者信息和许可证。

设置 NPM 忽略文件

创建 .npmignore 文件,指定例如,node_modules、dist 等。

版本管理

在 NPM 上发布的每个包都有唯一的版本号。如果你对插件做了更改,发布的时候需要更新版本号。NPM 使用语义化版本控制 (Semantic Versioning),其格式为 MAJOR.MINOR.PATCH。具体规则如下:

  • MAJOR:做了不兼容的 API 修改。
  • MINOR:增加了功能,并且没有破坏兼容性。
  • PATCH:修复了问题,并且没有破坏兼容性。

发布插件

npm publish

发布成功


PS C:\Users\testlayout> npm publish
npm notice 
npm notice 📦  @test-layout@1.2.80
npm notice === Tarball Contents === 
npm notice 359B  README.md   
npm notice 1.4kB package.json
npm notice === Tarball Details === 
npm notice name:          @test-layout
npm notice version:       1.2.80
npm notice filename:      @test-layout-1.2.80.tgz
npm notice package size:  954 B
npm notice unpacked size: 1.8 kB
npm notice shasum:        02f1b7bbAAAAAA40b52cbbdb14d6584988        
npm notice integrity:     sha512-dK95CUAAAAZ08A[...]s+jAAAo1Bw==        
npm notice total files:   2
npm notice 
npm notice Publishing to https://test.com/_registry/npm
+ @test-layout@1.2.80
PS C:\Users\testlayout> 

其他命令


npm publish --access=public // 发布公共的npm包
npm version patch // 更新当前包版本 v0.0.1 -> v0.0.2

结语

  • 今天就写到这里啦~
  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824405.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采用gpio-mio的sdk文档编译petalinux

其余步骤都ok 到下面生成boot.bin文件时失败 在网上找到了类似的 部署运行petalinux系统镜像_default bitsream is not found, please specify a bi-CSDN博客 经发现为该文件为纯PS端 未用到pl端 所以在生成时需要去除 --fpga 这样就成功了

redis中知识以及面试题

一、非关系型数据库NoSql 如下四种类型都是非关系型数据库 1.键值存储数据库(Key-Value) 如redis,就是键值存储数据库 2.列存储数据库 如clickhouse是列存储 3.文档型数据库 4.图形数据库(Graph) 二、redis的特点 redis是一个高性能的非关系型数据库,其中的所有数据形式都…

考研打卡(3)

开局(3) 开始时间 2024-10-30 21:38:56 结束时间 2024-10-30 22:27:21呜呜今天体侧了数据结构设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行__躺 的分配和回收才能使得初始关键字序列变成有序序列。(武汉科技大学2014) A 3 B 4 C 5 D 8A 3答案…

学习笔记(十四):ArkUi-单选框 (Radio)

概述: 单选框组件,通常用于提供相应的用户交互选择项,同一组的Radio中只有一个可以被选中。 单选框组件不支持自定义样式 一、创建单选框 接口形式如下: value 为单选框名称,group为单选框所在组的名称,同一个组内最多只有一个单选框为选中状态Radio(options: {value: st…

【专题】2023-2024中国保险数字化营销调研报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p=38063 在时代浪潮的推动下,中国保险行业正经历着一场波澜壮阔的变革之旅。 2023 年,中国经济迈向高质量发展阶段,保险公司纷纷聚焦队伍转型,专业化、职业化代理人成为行业新方向。回顾保险代理人队伍发展,历经多次变革,从早期扩张到面临…

2024CCPC哈尔滨部分题解

赛时被评测机卡死了 M.奇怪的上取整求\(\sum_{i=1}^{n} f(n,i)\) \(Input\) 第一行一个整数\(T(1<=T<=10^3)\),表示数据组数 对于每组数据,一行一个整数\(n(1<=n<=10^9)\) \(Output\) 对于每组数据,输出一行一个整数,表示答案。 \(Sample\) 3 5 451 114514 ——…

基于thinkphp+fastadmin+uniapp的单商户商城

1 、 系统概述多平台的单商户多门店系统,支持微信公众号、微信小程序、h5网页、Android、IOS的购物商城,拥有强大灵活的店铺装修、自定义模板、多规格商品、运费模板、库存管理、全端分享等。2、技术栈thinkphp uniapp vue3 vite redis element-plus easy-wechat mysql3、 解…

什么是多态?面向对象中对多态的理解

多态(Polymorphism)是面向对象编程(OOP)中的一个核心概念,它允许对象以多种形式出现。多态性使得同一个接口可以用于不同的数据类型,从而使得代码更加灵活和可扩展。简单来说,多态就是一个接口,一个类,一个抽象类,一个类里面的方法,不同类的同一个方法,都可以有多种…

HarmonyOS:DevEco Profiler调优工具

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/18515687➤如果链接不是为敢技术的博客园…

基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现九

可以二次开发 前台功能:首页、诗文、作者、名句、成语、赏析、翻译、典籍、注册、登录、个人中心等。 后台功能:作者列表、古诗词列表、名句列表、成语列表、典籍列表、用户管理、赏析管理、翻译管理等。 部分功能: 前台赏析信息控制器Controller、前台典籍信息控制器Contro…

基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现十

可以二次开发 前台功能:首页、诗文、作者、名句、成语、赏析、翻译、典籍、注册、登录、个人中心等。 后台功能:作者列表、古诗词列表、名句列表、成语列表、典籍列表、用户管理、赏析管理、翻译管理等。 部分功能: 前台个人中心信息控制器Controller、前台翻译信息控制器Co…

KMC数据库设计

存一下密钥管理中心数据库,免得找不到了具体表格:表名 列名 数据类型 主键 外键Keys KeyID INT PKKeyValue VARBINARY(256)KeyType VARCHAR(50)CreatedAt DATETIMEExpirationDate DATETIMEStatus ENUMKey_Pools PoolID INT PKPoolName ENUMDescription VARCHAR(255)Key_Pool_…