跳到主要内容

移除讨厌的打印狗

· 阅读需 4 分钟

在 npm 项目上使用 dog 时发现挺便捷,关键在使用时添加 xxx_dev=all 的启动环境变量,既可以在正式环境也观察到数据流转及发现错误的具体原因。

后来就在 web 项目中使用,发现效果尚可,其实不如 babel 的插件 babel-plugin-transform-remove-console 移除 console 彻底些。

但是,毕竟写了这么包,不用也不太好。主要该包能在函数头位通过设置 type 属性值来判定是否需要打印消息。这样就省去了添加再删除、下次使用时再添加 console.log 的麻烦,且也可以通过过滤器过滤掉。

布局的学习

· 阅读需 3 分钟

先写了一个布局,发现,总是在 NextJs 中显示水合错误

现在想着使用 FlexBox 或是 Grid 来更改。

布局结构

布局结构
<body class="page">
<header class="header">头部</header>
<div class="page-container">
<aside class="sidebar">侧边栏</aside>
<main class="main">内容区</main>
</div>
<footer class="footer">页脚</footer>
</body>

await 也需要 catch

· 阅读需 3 分钟

总把外行当内行,遇见问题总抓狂

不记得在哪里看了这么一句话:“在 js 中尽量不写 try...catch ,因为会拖累进程,甚至拖垮程序。每一个 try..catch 都将创建一个独立的内存,需要先执行一遍,然后看一下有没有错误,没有错误再返回源执行栈事件进行执行。“

当时,看见这句话,若获珍宝。巴不得在自己的项目中可以一个 try...catch 没有,也不能造成性能不足。

直到,昨晚一个小时一点点的打印找关于 triggerUncaughtException 的错,才发现,这真是“外行看热闹,内行看门道。半瓶子看自以为是和瞎几把信外行的瞎几把说”。

终端虽好,理性待之

· 阅读需 3 分钟

不想说,说了都是泪。

在写 [a-command] 的时候,有一件事贼尴尬。

写好了之后,在发布新版本后在 [vjj](使用的是 [a-command] 的 questionselect) 中使用时,发现测试时总是第三次就会出现打印残影。于是翻箱倒柜问国产 ai,回答都是一致的“在使用 emitKeypressEvents 的时候没有清理导致的残余”。

在 [a-command] 的每一次测试都没有问题,一到了 [vjj] 上就会出现这个问题。

首先声明:我的代码逻辑能力很强,这个不是代码逻辑或残余事件监听导致的

光标,你肿么了?怎么不见了

· 阅读需 4 分钟

在编写 [a-node-tools] 的 runOtherCode 模块时,使用 process.on('exit', cursorShow) 监听事件流中断,期望在程序退出时将隐藏的光标展示出来。然而,在实际的使用中,难遂人愿。

在实际的运行中,在遇到 Ctrl + C 的这种意外事件时,触发的是 SIGINT 信号,触发了 process.on('SIGINT',()=>{})

ANSI 转义码

· 阅读需 7 分钟

类别

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

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

node 失灵了

· 阅读需 3 分钟

在 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

· 阅读需 1 分钟

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

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

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