Skip to content

Instantly share code, notes, and snippets.

View banyudu's full-sized avatar
🎯
Focusing

Yudu banyudu

🎯
Focusing
View GitHub Profile
@banyudu
banyudu / jwtRS256.sh
Created September 22, 2020 09:35 — forked from ygotthilf/jwtRS256.sh
How to generate JWT RS256 key
ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key
# Don't add passphrase
openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
cat jwtRS256.key
cat jwtRS256.key.pub
@banyudu
banyudu / setup-consul-kv.blog.md
Created September 23, 2020 03:27
搭建Consul KV存储

搭建Consul KV存储

Consul是一个使用广泛的服务发现、kv存储的应用。

近期因工作需要,我搭建了一个简单的consul,在这里记录下过程。

@banyudu
banyudu / extract-source-from-source-map.ts
Created October 2, 2020 01:38
Extract source code from source map
#!/usr/bin/env ts-node
import * as fs from 'fs'
import * as path from 'path'
import { promisify } from 'util'
import { SourceMapConsumer } from 'source-map'
const writeFile = promisify(fs.writeFile)
const mapFile = process.argv[2]
@banyudu
banyudu / extract-source-from-source-map.blog.md
Last active December 8, 2025 11:10
如何从JS的source map中还原源代码

如何从JS的source map中还原源代码

在现代的前端开发过程中,source map是非常常见的,无论是babel转码、还是webpack打包,或者typescript编译,都会生成一份.map文件,就是我们说的source map文件。

首先,在Chrome等浏览器的devtools中可以看到源代码,说明根据.map肯定是能还原源代码的。不过浏览器只提供了单个文件的方式,对于想在工程级别还原整个代码的需求,还是不太方便。

下面我们通过分析一些现有的工具,一步步解析这个过程。

@banyudu
banyudu / gitlab-runner-full-disk-usage.blog.md
Created November 6, 2020 09:52
记一次Gitlab Runner服务器磁盘爆满问题

记一次Gitlab Runner服务器磁盘爆满问题

一早起来就发现有几个CI任务失败了,看docker错误日志是磁盘空间不足。我顿时就纳闷起来了。

因为虽然CI服务器磁盘空间只有500GB,还有大量的docker cache,但是我设置的计划任务每小时都会执行一次docker system prune,不应该会爆满。而且两三天前刚使用docker volume prune清理过一次volume,就更不应该了。

排查问题

@banyudu
banyudu / manage-shell-scripts-with-npm.blog.md
Created November 7, 2020 03:51
使用npm管理常用shell脚本

使用npm管理常用shell脚本

npm一般被用作管理Javascript相关的模块,它同时也提供了『bin』的功能,即安装某模块之后,自动在系统中设置命令行工具。

所以我们就可以拿它来管理命令行工具。

因为npm只特殊对待头部带有#!/usr/bin/env node的脚本,将其转为Node运行。其它的都是直接执行,所以我们就可以随便放一些Shell脚本、Perl脚本甚至二进制包到它的里面,并将其作为一个安装工具来使用。

@banyudu
banyudu / .gitconfig
Created November 12, 2020 06:21
git find-merge command
# copied from https://stackoverflow.com/a/30998048/2380603
[alias]
find-merge = "!sh -c 'commit=$0 && branch=${1:-HEAD} && (git rev-list $commit..$branch --ancestry-path | cat -n; git rev-list $commit..$branch --first-parent | cat -n) | sort -k2 -s | uniq -f1 -d | sort -n | tail -1 | cut -f2'"
show-merge = "!sh -c 'merge=$(git find-merge $0 $1) && [ -n \"$merge\" ] && git show $merge'"
@banyudu
banyudu / sync-docker-images-between-hosts.blog.md
Last active November 13, 2020 09:24
在不同的主机中同步Docker镜像

在不同的主机中同步Docker镜像

Docker镜像拉取原来是一个挺简单的事,直接

docker pull mygroup/myimage
@banyudu
banyudu / fix-eslint-cache-in-ci-with-git-restore-mtime.blog.md
Last active March 28, 2024 03:25
ESLint的缓存机制及其在CI中的应用

ESLint的缓存机制及其在CI中的应用

背景

ESLint是一个前端、Node领域中流行的代码规范检查工具,使用起来很方便。

之前为了强制推行代码规范,我在CI任务中加入了ESLint检查。保障了规范的同时,也引入了痛点:CI的时长延长了2~3分钟左右。因为现在开发的工程体量比较大,ESLint会占用很多的内存、CPU资源,且运行时间较长。

@banyudu
banyudu / dynamic-change-nodejs-memory-limit.blog.md
Last active June 4, 2021 03:46
动态修改Node.js中的内存限制

动态修改Node.js中的内存限制

背景

Node.js中默认会对可用内存做出限制,当使用的内存超出1.5GB的默认值时,会报内存溢出的异常。

对于这个问题,Node官网中有相关说明:--max-old-space-size