发布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
发布Npm包到GitHub Packages的更多相关文章
- 不会发布npm包?进来看看?
前言 npm(Node Package Manager),一个Node的包管理器,平时我们常用的公共模块(插件)或者叫做包大多都放在上面,所以接下来要封装的插件,我们就简单称它为npm包,本文从就从这 ...
- 创建并发布npm包
1.npm官网创建npm账户 npm网站地址:https://www.npmjs.com/ npm网站注册地址:https://www.npmjs.com/signup 2.命令行工具登录npm np ...
- 使用cnpm搭建私有NPM仓库 发布npm包
关于如何使用cnpm搭建私有的npm仓库看这里→ http://blog.fens.me/nodejs-cnpm-npm/ 我本人还没有机会真正实践操作过,公司的npm仓库是我老大搭建的,我这里仅仅记 ...
- 前端组件用 Scope 发布 npm 包的方法
1.引言 多人.多组织或多组件发布 npm 包到同一个仓库时,可能出现命名冲突问题. 为了解决这个问题,npm 引入了“scope”(范围)概念. 在 Angular 项目中,我们通常可以看到“@an ...
- 使用Vue-cli3.0创建的项目,如何发布npm包
使用Vue-cli3.0创建的项目,如何发布npm包 在使用vue进行项目开发时,如果我们想要发布一个包,有时候会有点迷糊,不知道应该怎么修改脚手架的默认设置.这里记录一下一些常见的操作. 创建ind ...
- 用@vue/cli发布npm包
1.环境准备 安装node,npm,@vue/cli 2.初始化项目 用@vue/cli创建新项目 vue create mtest-ui 删除public,main.js,App.vue等无关文件, ...
- 使用vuecli3发布npm包
一.使用vuecli3创建项目 vue create svgicon 二.修改目录,开发组件前的准备 把src目录改为examples作为查看组件的演示目录,新建packages目录作为组件编写的目录 ...
- 开发并发布npm包,支持TypeScript提示,rollup构建打包
前言: 工作了几年,想把一些不好找现成的库的常用方法整理一下,发布成npm包,方便使用.也学习一下开发发布流程. 主要用到的工具:npm. 开发库:babel.typescript.rollup.es ...
- node学习笔记8——发布npm包
1.注册一个npm账号: 2.在控制台输入 npm login: 依次输入你的账号信息,可通过 npm whoami 来验证是否登录成功 3.初始化包,控制台输入 npm init: 完成之后,可以看 ...
- 基于vue组件,发布npm包
亲测好用,如出错,请留言 1.项目初始化 使用vue脚手架创建,但vuecli太重,我们使用简单的工程脚手架进行处理,输入命令 vue init webpack-simple my-project n ...
随机推荐
- [转帖]SQL Server数据库重建索引、更新统计信息
https://vip.kingdee.com/article/183932?productLineId=8 SQL Server数据库有时由于长期未做索引重建,导致SQL执行效率下降,当表的索引碎片 ...
- [转帖]s3对象存储挂载到本地文件夹
https://www.zhangzhuo.ltd/articles/2021/10/22/1634888049032.html 一.s3fs工具 s3fs-fuse 是一个采用 c++ 开发的开源应 ...
- [转帖]原创经典:SQLSERVER SendStringParametersAsUnicode引发的疑案 推荐
https://developer.aliyun.com/article/429563 简介: 上周五碰到开发的请求协助解决数据预定程序中对单头等几个表检索数据时检索条件尾数是9的数据特别慢.第一时间 ...
- IPV6的简单学习与整理
背景 大概2018年时曾经突击学习过一段时间IPV6 当时没太有写文档的习惯,导致这边没有成型的记录了. 今天又有项目要求使用IPV6, 想了想就将之前学习的部分 还有想继续学习提高的部分进行一下总结 ...
- Object.defineProperty熬夜整理的用法,保证你看的明白!
Object.defineProperty的基本使用 <script> let personObj={ name:'何西亚', sex:'男' } //我们想给这个对象添加一个属性 // ...
- js加减乘除运算出现精度丢失
做乘法运算出现精度丢失 let aa= 2106.49 console.log( aa*10000 ) //21064899.999999996 console.log( Math.round(aa* ...
- 如何计算一个uint64类型的二进制值的尾部有多少个0
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 正文 这实在是一个很简单的问题,用代码可以表示如下: func Coun ...
- 【JS 逆向百例】房天下登录接口参数逆向
声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:房天下账号密码登录 主页:https://passpo ...
- CTF&爬虫:掌握这些特征,一秒识别密文加密方式
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 前言 爬虫工程师在做加密参数逆向的时候,经常会遇到各种各样的加密算法.编码.混淆,每个算法都有其对应的特征,对于一些较小的网站, ...
- 从零开始配置vim(25)——关于 c++ python 的配置
从9月份到国庆这段时间,因为得了女儿,于是回老家帮忙料理家事以及陪伴老婆和女儿.一时之间无暇顾及该系列教程的更新.等我回来的时候发现很多小伙伴私信我催更.在这里向支持本人这一拙劣教程的各位小伙伴表示真 ...