github package的使用教程
一、写在前面
上一次,笔者向大家介绍了把gitlab仓库作为npm私包的使用方法,具体的详见我的博文地址https://www.cnblogs.com/cnroadbridge/p/16406476.html,它能用,但是不够优雅,比如说你想知道那个包的版本就不是很直观能够在package.json
中体现。好多天前,一次偶然的机遇,被甲方的金主发掘并看上,脱离后端好久的我硬着头皮写了一些Node方面的面试题,具体的详见我的博文地址https://www.cnblogs.com/cnroadbridge/p/16361744.html,通过面试后就去了某地一线内卷中心进行周末兼职工作,还挺有意思的,嘿嘿,老板给我工钱的同时,我又能学习接触新的领域和知识,这不,在这其中我就学到了一种基于gitlab管理npm私包的方法。
二、这是一个烂尾楼的故事
好几个月前,我曾经在github上写了一个项目,它主要是基于leetcode拿来刷题的,大概写了几十题是有的,语言的话我是用ts写的,然后每一题也有它的单元测试, 都帮你配置好的,感兴趣的可以clone、star、fork下来玩玩https://github.com/ataola/coding-ts,如果你对ts不太熟,其实一年前我也是用js刷了一些题的,你可以看下这个https://github.com/ataola/coding,主要是有段时间特别忙,就没有时间和精力去做这件事,后来就停下来了,然后兼职也占了我一部分时间,一个人自嗨和一群人共舞还能拿点钱,那我肯定选后者啊,所以这个项目就烂尾了,谈起烂尾,我在2013年左右看到在我附近有一栋烂尾楼,得益于3号线的开发,这栋烂尾楼于去年又活了过来,我想后面我可能也是这个模式,也许某一天我又激活了这个项目,其实后面我更倾向于一个月输出3-7题题目上去润润脑子,毕竟你会做和你会做并把别人教会是两码事。
三、以我的烂尾楼项目为例进行GitHub package发包测试
发包嘛,总要选个仓库试一试,我看了下我的仓库列表,我决定让烂尾楼申请出战!!!
不知为何,我那个图片上输入不了中文,所以我就意思下写了几句英语,望周知。
3.1、创建github的AccessToken
Step1: 点击用户头像的settings进入设置页面
Step2: 点击Developer Settings进入开发者配置页面
Step3: 点击personal access token进入token配置页面,然后点击generate token创建一个新的token
Step4: 填写对于的token信息,拉到最下面点击generate new token按钮,这里需要注意啊,这个token它只会出现一次,所以生成以后,你复制粘贴到一个你能够保存的地方给他存起来哈
3.2、使用npm登录github package网站
Step 1: 登录github package的包网站 npm login --registry=https://npm.pkg.github.com
Step 2: 输入用户名密码,注意这里的密码就是你刚才在楼上生成的token,而不是你登录github账号的密码
具体的你可以看下楼下的日志:
➜ coding-ts git:(main) npm login --registry=https://npm.pkg.github.com
npm notice Log in on https://npm.pkg.github.com/
Username: ataola
Password:
Email: (this IS public) zjt613@gmail.com
Logged in as ataola on https://npm.pkg.github.com/.
➜ coding-ts git:(main)
Step 3: 设置所有@ataola开头的依赖包,都从Github源上获取
npm config set @ataola:registry=https://npm.pkg.github.com
3.3、尝试着发个包看看
这里需要注意的是,package.json
里面的包名字需要改一下,比如我之前是"name": "coding-ts"
,,就需要改成"name": "@ataola/coding-ts"
,不然推不上去哈哈。
然后执行命令 npm publish
如果发版成功的话,就会有个github packages页面的,比如我这个项目的是https://github.com/ataola/coding-ts/packages/1525960
3.4、尝试着拉下刚才那个包
这里需要注意哈,3.2这个步骤你一定要做完再往下走,直接走3.4是不行的,即使配置了npm config set @ataola:registry=https://npm.pkg.github.com
日志如下:
➜ tmp npm install @ataola/coding-ts
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmmirror.com/@ataola%2fcoding-ts - [NOT_FOUND] @ataola/coding-ts not found
npm ERR! 404
npm ERR! 404 '@ataola/coding-ts@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-07-10T00_34_11_096Z-debug.log
➜ tmp npm config set @ataola:registry=https://npm.pkg.github.com
➜ tmp npm install @ataola/coding-ts
npm ERR! code E401
npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry"
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-07-10T00_34_32_327Z-debug.log
➜ tmp npm install @ataola/coding-ts@1.0.1
npm ERR! code E401
npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry"
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-07-10T00_35_03_569Z-debug.log
➜ tmp
配置完token后,效果是这样的
➜ tmp npm install @ataola/coding-ts@1.0.1
added 1 package in 1s
➜ tmp tree -L 3
.
├── node_modules
│ └── @ataola
│ └── coding-ts
├── package-lock.json
└── package.json
3 directories, 2 files
➜ tmp cat package.json
{
"name": "tmp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@ataola/coding-ts": "^1.0.1"
}
}
➜ tmp
这在管理github上创建团队的仓库私包简直是福音啊,2022年好像用的代码编辑器,仓库,包管理,包含云啥的都是微软的哈哈
四、思考和总结
通过楼上的学习,你学会了github的发包吗? 其实除了npm包, github package也支持docker、 maven、nuGet、ruby等package的管理,有兴趣的同学可以去了解下。
除了楼上的东西外,我在兼职的时候也搞过下loopback这个框架,它是通过一些配置和命令可以自动生成从数据库到后端实体的关系映射,以及基于Open API接口的对应实现,这样子的好处是,你可以少写很多代码就可以得到很多后端接口,50%-60%非定制化需求的接口工作量它都能自动帮你实现,这对一个人手本身不足初创团队来说,无疑是一个好消息,有兴趣的读者可以去了解下,剩余的需求可以用midway或者egg这种业务框架去实现那些看着稍微复杂和定制化的业务需求,当然这其中你要实现抹平两个框架的认证差异,简单的说就是实现jwt或者类似于jwt的认证体系共享,这个就是我之前在团队做的部分工作之一。
如果你只是想通过这篇文章学习技术的,那你可以走了,因为后面的更多的是一种人生观价值观的交流,感兴趣的可以听一下我唠嗑哈。
兼职这件事吧,是一种双赢的合作模式吧。在几个月前我对未来非常迷茫,甚至有轻度抑郁倾向,那段时间我很低迷,每天中午午饭时间看半部豆瓣前250的电影去感悟世界和理解世界的一些情感,生命都是脆弱的,在一些事情面前显得很无力又很无助,是兼职它给了我一些激励和动力,晨兴周末理荒秽赶地铁,带月禾锄电脑归,一天也能赚个千八百的零花钱改善改善生活,第二天再去山姆超市买点面包水果蔬菜饮料,然后去外婆家弄堂里海底捞啥的吃顿好的,偶尔社会责任感爆棚也会通过腾讯公益、联合国儿童基金会向有需要的人提供一些金钱上的帮助,燃烧自己,为了社会主义的事业发光发热,一周也就这么过去了,充实而忙碌,嗯,总比躺在床上睡觉强,年轻人还是要有点上进心,你们也不用可怜我起早贪黑地讨生活,那又有什么办法呢,如果有的选,谁还不是个宝宝,谁不想做公主王子那样,吃着冰淇淋吹着空调看看电影啥的,毕竟房价那么贵,靠平时的工资也就只能温温饱饱,所以我其实是建议你们周末再出来为我们的社会主义建设出一份力出一份爱心的,做点微小的工作,嗯。
我其实运营着一个大概五六个人的兼职小群,其中有写JAVA的,有写Vue、有写React的,他们相信我,觉得我是一道光,能够给他们带来一些活,作为新时代农民工,一起去码头办公室扛沙包写代码,所以如果您有项目上需要软件开发的帮助,或者您想在闲暇之余像我一样找点事做吃顿好的,欢迎你们联系我,本着一切为社会主义发展做贡献的原则,我是很愿意做这样一些中间的枢纽去沟通协调这部分的工作,毕竟林清玄曾经说过,“大国民的品质,一是从容,二是有情”。
最后,我给大家推荐一部我那段时间看过的一部电影叫《美丽人生》,故事中小男孩爸爸一直是一个积极向上阳光的存在,哪怕到了生命最后一刻,也都是尽力保护着孩子维护着孩子的童年童真,那一回头,是那么地阳光灿烂,真的好治愈啊。
希望我的一些过往经历和经验,能够在技术上或者建立一个理性的社会主义观上帮助到你,房子会有的,车子也会有的,对象也会来的,只要你努力努力再努力,加油加油再加油,为了社会主义的事业燃烧自己,发光发热吧!!!
五、参考文献
github package的使用教程的更多相关文章
- github桌面软件使用教程
github桌面软件使用教程 首先 要先安装 桌面版官网,或者百度搜github windows下载即可 可以再github网站上直接点击,把代码添加的桌面软件中 也可以再左上角添加项目,比如actu ...
- git和github新手安装使用教程(三步入门)
git和github新手安装使用教程(三步入门) 对于新手来说,每次更换设备时,github的安装和配置都会耗费大量时间.主要原因是每次安装时都只关心了[怎么做],而忘记了记住[为什么].本文从操作的 ...
- pip install GitHub package
/********************************************************************************* * pip install Git ...
- GitHub官方Markdown语法教程
说明:Markdown随着编译器不一样,语法也都不一样,但这份GitHub提供的官方教程,基本学会这份就够了. https://guides.github.com/features/mastering ...
- git与github的简单使用教程
git与github的简单使用教程 一.创建仓库 点击new,进入创建仓库页面 对将要创建的仓库进行一些简单的设置 最后再点击create repository就可以了. 到这我们就创建好了一个仓库. ...
- Github 第三方授权登录教程
Github 第三方授权登录教程 ####大致流程图 ####1.首先注册一个github帐号,Applications>Developer applications>Register a ...
- GitHub & GitHub Package Registry
GitHub & GitHub Package Registry npm https://github.blog/2019-05-10-introducing-github-package-r ...
- GitHub和SourceTree入门教程
-->本教程适用于主流的开源网站github和bitbucket,个人认为sourceTree还是比较好用的git客户端,支持windows和mac os. -->soureceTree的 ...
- [转] GitHub上README.md教程
点击阅读原文 最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文件的同学们. README文件后缀名为md.md是markdown的缩写,markdown是一种 ...
随机推荐
- FreeRTOS --(11)任务管理之系统节拍
转载自 https://blog.csdn.net/zhoutaopower/article/details/107146764 前面有了创建任务.启动调度器.任务控制,接下来便开始分析一个 Tick ...
- FreeRTOS --(1)链表
转载自 https://blog.csdn.net/zhoutaopower/article/details/106550648 Based On FreeRTOS Kernel V10.3.1 1. ...
- Linux 设置开机自启动脚本(ES、MySQL、Nacos、Nginx)
/etc/rc.d/init.d 中文件会在 Linux 系统各项服务都启动完毕之后再被运行 cd /etc/rc.d/init.d:新建xxx.sh文件. chmod +x xxx.sh,赋予可执行 ...
- 简易版 vue实现
Vue-mini 完整的Demo示例:git@github.com:xsk-walter/Vue-mini.git 一.Vue实例 构造函数: $option\ $el\ $data 判断是否存在 通 ...
- django 备件管理系统
views 1 class limit: 2 3 def limit(self,res,obj): 4 limit = int(res.GET.get('limit',1)) 5 pagelimit ...
- 【算法】基数排序(Radix Sort)(十)
基数排序(Radix Sort) 基数排序是按照低位先排序,然后收集:再按照高位排序,然后再收集:依次类推,直到最高位.有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序.最后的次序就 ...
- arts-week11
Algorithm 69. Sqrt(x) - LeetCode Review Building a network attached storage device with a Raspberry ...
- linux篇-linux修改网卡名(亲测有效)
1查看网卡ip addr 2cd /etc/sysconfig/network-scripts Ls查看 3mv ifcfg-eno16777736 ifcfg-eth0重命名,然后编辑 最后一行加入 ...
- 好客租房46-react组件进阶目标
1能够使用props接收数据 2能够使用父子组件之间的通讯 3能够实现兄弟组件之间的通讯 4能够给组件添加props校验 5能够说出生命周期常用的钩子函数 6能够知道高阶组件的作用 组件通讯介绍 组件 ...
- Probabilistic two-stage detection