跳到主要内容

ANSI 转义码

· 阅读需 10 分钟

类别

转义码主要用于控制终端的输出行为,有四个基本类别:

  • 光标:允许操控屏幕上光标的:移动、显隐、滚动限制、部分屏幕的使用
  • 属性:设置或清除文本的属性
  • 颜色:更改当前文本的前景色和背景色
  • 其他转义:清除屏幕、清除屏幕部分、重置终端、设置制表符

node 失灵了

· 阅读需 4 分钟

在 macOS 特别是 Apple Silicon (M1/M2) 设备上,Homebrew 的路径结构和符号链接机制与 Intel 芯片 Mac 不同。以下是您遇到的现象的原理详解和解决方案:


一、路径结构解析(Apple Silicon 芯片)

1. Homebrew 默认安装路径

/opt/homebrew/          # ARM 版 Homebrew 主目录
├── bin/ # 全局可执行文件符号链接
├── opt/ # 实际安装的软件包
│ └── node/ # Node.js 的主程序文件
└── lib/ # 共享库和依赖
└── node_modules/ # 全局 npm 包安装目录

2. 关键路径说明

路径作用
/opt/homebrew/opt/nodeNode.js 的实际安装目录
/opt/homebrew/bin/node指向实际可执行文件的符号链接
/opt/homebrew/lib/node_modules全局 npm 包的安装位置

Emoji 的使用

· 阅读需 2 分钟

CHANGELOG.md 文件中,使用 Emoji 可以直观标识不同类型的变更。以下是常见的 Emoji 及其含义:


常用 Emoji 分类

手动触发 github actions

· 阅读需 2 分钟

有时候由于非代码原因,需要手动触发 github actions,比如:测试、部署等。

手动触发 github actions 可以通过以下两种方式:

  • 通过 Actions 页面手动触发
  • 通过 Actions 页面的 Run workflow 按钮触发

github ip 直连

· 阅读需 2 分钟

在提交代码时遇见了点问题,以为只是暂时的网络问题,没太注意。知道后来提交尝试很多次,发现 ping github.com 也不通。于是,开始查找原因。

ping 可以通过发送 ICMP 协议包检测当前设备于目标服务器之间的🛜连通性。但在 DNS 被污染时,是没有办法甄别。

所以需要使用添加 IP 直连的方式,来绕过 DNS 解析。

git 小改动的时提交技巧

· 阅读需 2 分钟

合并提交

若是频繁的为小改动,可以在推送前合并为一次提交

git rebase -i HEAD~3

上面的代码将合并最近三次的提交。

  1. 找到需要合并的提交,修改为squash,其他保持不变。
  2. 保存并退出。
  3. 推送到远程仓库。

这样,你的改动将会被合并为一次提交,并保留你的贡献者信息。

type: module ? commonjs ?

· 阅读需 2 分钟

在项目添加单独 eslint 配置时,执行 npx eslint . 后空台台显示一个提示 package.json 缺失 type 属性。但显示并不是错误,而是提示 package.jsontype 属性缺失,可以忽略,但建议配置 "type": "module"

手快的我直接在 package.json 文件中添加了该属性。

a few days later...

提交代码前自动格式化代码

· 阅读需 2 分钟

为了保证代码风格统一,使用 husky + lint-staged + prettier + eslint 提交代码前自动格式化代码。

背景

当使用 husky 后,在 git commit 时:

  • 自动执行 pre-commit 钩子
  • 然后执行 lint-staged
  • 再执行 prettier
  • 最后执行 eslint

操作会自动用 Prettier 和 ESLint 格式化暂存区(git add 过的文件)的代码,并检查代码是否符合规范。格式化的改动会自动添加到本次提交,无需手动操作。

GPG 签名

· 阅读需 2 分钟

在使用命令 git tag v0.1.0 -v 时发现在展示的信息末尾包含了一句 “error: no signature found”。一检索,才发现是自己在查看 commit 标签时使用错了命令。正确应当是 git show v0.1.0。于是捎带脚的查了下 [GPG]

github actions

· 阅读需 4 分钟

1. 核心运行原理

GitHub Actions 是 GitHub 提供的 托管式自动化服务,其运行特点如下: • 按需创建:每次触发工作流程时,GitHub 会在其服务器集群中动态创建虚拟机实例(称为 Runner) • 环境隔离:每个 Job 都在全新的独立环境中执行,任务完成后销毁实例 • 多系统支持:提供 Linux (Ubuntu)、Windows 和 macOS 三种托管运行环境