发布Npm包到GitHub Packages
发布Npm包到GitHub Packages
Github
集成了GitHub Packages
功能,目前提供了Npm
、Docker
、Maven
、NuGet
、RubyGems
的包管理工具,可以通过Github
管理开源包,本文主要介绍使用GitHub Packages
发布Npm
包。
发布
首先需要制作一个package.json
文件,可以通过npm init
命令根据提示生成一个package.json
文件。
这是已经发布好的package.json
文件,作为示例,需要注意的是name
字段、publishConfig
字段与repository
字段的配置,在GitHub Packages
发布的包属于作用域包,需要使用@username/package-name
的形式作为name
字段,publishConfig
是发布到GitHub Packages
的必填且值固定的字段,repository
字段是必须要指定的仓库url
,可以发布多个包到一个仓库,可以参考https://github.com/WindrunnerMax/Asse/packages/292805
。
{
"name": "@WindrunnerMax/mini-program-cli",
"version": "1.1.0",
"description": "Uniapp小程序开发脚手架",
"author": "Czy",
"license": "MIT",
"bin": {
"mini-program": "bin/cli.js"
},
"scripts": {
"test": "echo "Please use HbuildX import this project""
},
"engines": {
"node": ">= 8"
},
"publishConfig": {
"registry": "https://npm.pkg.github.com/WindrunnerMax"
},
"repository": "https://github.com/WindrunnerMax/Asse"
}
下面需要授权,首先在Github
申请一个Token
,user - setting - Developer settings - Personal access tokens - Generate new token
,生成一个用以发布Npm
包的Token
,需要选择权限,以下权限必选:
接下来将Token
添加至~/.npmrc
,win
用户是路径C://users/current-user
。
//npm.pkg.github.com/:_authToken=TOKEN
或者使用npm login
命令进行授权,注意用户名要全部小写,Token
的输入是以密码的方式输入,不会显示。
npm login --registry=https://npm.pkg.github.com
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
接下来在项目的根目录添加一个~/.npmrc
文件,并添加如下配置。
registry=https://npm.pkg.github.com/WindrunnerMax
接下来就可以使用npm publish
命令发布包。
npm publish --access=public
安装
需要注意的是,无论发布包还是安装包都需要授权,也就是上述生成Token
以及配置的过程,否则无法安装指定的包,以我发布的包为例,执行安装。
npm install -g @windrunnermax/mini-program-cli@1.1.0 --registry=https://npm.pkg.github.com/
如果使用Github
安装Npm
包很慢的话,可以考虑配置代理,同样是在~/.npmrc
文件中加入配置。
proxy=socks5://127.0.0.1:1080
https-proxy=socks5://127.0.0.1:1080
Github
https://github.com/WindrunnerMax
- 初识Python (r10笔记第52天)
- 挑战数据结构与算法面试题——统计上排数在下排出现的次数
- Go语言的 10 个实用技术--转
- MySQL反连接的优化总结(r10笔记第51天)
- python基础知识——内置数据结构(列表)
- 【Go 语言社区】Go语言Slice去重
- 【Go 语言社区】Golang 语言再谈接口
- 【Go 语言社区】Golang 语言再谈常量
- 【Go 语言社区】HTML5 Canvas+JS控制电脑或手机上的摄像头实例
- MySQL Profile在5.7的简单测试(r10笔记第50天)
- 【Go 语言社区】Golang中interface判断nil问题
- 有趣的rownum测试(r10笔记第49天)
- 【Go 语言社区】关于Golang 数据缓存到redis内存数据库遇到的问题
- go中的读写锁RWMutex
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- java零基础入门006~springboot实现多文件的上传(java多文件的上传)
- Android编程实现随机生成颜色的方法示例
- Android中将Bitmap对象以PNG格式保存在内部存储中的方法
- python入门012~使用python3爬取网络图片并保存到本地
- java入门015~springboot2整合mybatis,轻松实现mysql数据的增删改查
- 详解Android activity与fragment之间的通信交互
- Android App内监听截图加二维码功能代码
- 微信小程序登录与注册验证码倒计时的效果实现
- Android仿微信朋友圈全文、收起功能的实例代码
- TextView实现图文混合编排的方法
- 小程序云函数调用http或https请求外部数据
- 详解Android中图片的三级缓存及实例
- 借助云开发实现小程序的登陆注册功能
- TextView显示文本控件两种方法 TextView显示link的方法
- Java入门005~Springboot2.2.4引入freemarker模板