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

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

前情提要

发布包到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.mrgr.cn/news/62138.html

相关文章:

  • NVR设备ONVIF接入平台EasyCVR视频融合平台智慧小区视频监控系统建设方案
  • 给哔哩哔哩bilibili电脑版做个手机遥控器
  • Windows: 如何实现CLIPTokenizer.from_pretrained`本地加载`stable-diffusion-2-1-base`
  • 渗透测试练习题解析 7 (CTF web)
  • JS | CommonJS、AMD、CMD、ES6-Module、UMD五种JS模块化规范
  • 在Excel中如何快速筛选非特定颜色
  • 北京武斗士散打搏击俱乐部招收代理合伙人成为武林新盟主
  • CentOS9 Stream上安装Edge浏览器
  • 获取Hive表备注
  • nacos介绍
  • 三季度业绩获多家机构首肯,“听劝的”B站终于“起死回生”?
  • 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
  • [MySQL#7] CRUD(2) | 更新 | 删除 | 聚合函数 | group by
  • 动态中位数
  • JetPack Compose安卓开发之底部导航Tabbar
  • 解决Selenium的3大痛点!这款工具让你的自动化测试效率翻倍!
  • 嵌入式linux跨平台基于mongoose的TCP C++类的源码
  • SQLark百灵连接——整合项目监控过程
  • 中酱集团:一日三餐吃出健康生活
  • 四、鸿蒙开发-常用布局(线性布局、层叠布局、弹性布局、网格布局、列表布局)
  • C语言导航 3.3指针运算符
  • QT:QThread 使用案例
  • 【Redis:原理、架构与应用】
  • JavaScript 实战技巧:让你成为前端高手的必备知识2
  • 【热管理】日本三洋 sanace 散热风扇
  • 阿里巴巴店铺商品API返回值中的商品分类与筛选条件