Things I Learned (Tool)

Parse GitConfig via Node🔗

• Tool

使用 Node 解析当前的 Git Config 文件,有两个可以辅助的 npm 库:

  1. git-config-path:可以用于判断当前的 Git Config 地址

例如,需要获取全局 Git Config 地址,可以运行:

const configPath = require('git-config-path')('global')

更多可以参考文档。

  1. ini:可以用于解析和处理 ini 类型的配置文件,parse-git-config 也使用了这个来解析 Git Config 文件。

简单的使用方法如下:

const configPath = require('git-config-path')('global');
const ini = require('ini');

const content = fs.readFileSync(configPath, 'utf8');
const parsed = ini.decode(content);
const stringify = ini.encode(parsed);
fs.writeFileSync(configPath, stringify, 'utf8');

更多内容,可以参考文档。


ESlint for TypeScript🔗

• Tool

根据 TSLint 官方给出的建议,TypeScript 项目的代码,现在也推荐使用 ESLint 来进行代码规范的检查。

在具体使用的时候,需要在 .eslintrc 中增加如下部分的设置:

{
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "@typescript-eslint"
  ],
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module",
    "project": "./tsconfig.json",
    "ecmaFeatures": {
      "jsx": true
    }
  },
}

其中,需要用到 typescript-eslint 这个库来帮助 ESLint 解析代码(GitHub)。

然而,在实际使用 ESLint 来检查 TypeScript 代码的时候,需要额外注意一个细节:

根据这里给出的解释,ESLint 默认情况下并不会检查非 .js 和 .jsx 结尾的文件。也就是说,如果 src 目录下有以下几个文件:src/index.js,src/app.tsx,src/utils.ts,那么在运行命令 eslint src 的时候,只有 src/index.js 会被检查,剩下的两个会直接被忽略。

需要检查 TypeScript 的代码,需要手动在调用 eslint 命令行的时候加上 --ext 参数,如:--ext js,jsx,ts,tsx。

当然,如果给 ESLint 手动指定需要检查的文件,或是通过 lint-staged 工具在 Git 签入的时候对 TypeScript 文件进行检查,这些情况下都是不需要额外指定 --ext 参数的,ESLint 可以正确处理 TypeScript 的代码。


Screen Recording in MacOS🔗

• Tool

OSX 自带的 QuickTime Player 支持屏幕的录制功能。具体的操作步骤如下:

  1. 打开 QuickTime Player
  2. 点击菜单中的 File => New Screen Recording
  3. 拖拽选择需要录制的区域,并点击开始录制,点击右上角可以结束录制
  4. 录屏结束后,可以选择菜单中的 File => Export => As Movie 来保存视频

转化为 Gif 格式

假设上述步骤保存了一个名为 in.mov 的视频,通过以下步骤可以将视频转化为 Gif 格式:

  1. 右键点击 in.mov 文件,选择 Get Info,在 More Info 中找到视频的大小信息,这里假设大小为 60x40
  2. 运行如下命令,将 in.mov 转化为 out.gif 文件

    ffmpeg -i in.mov -s 60x40 -pix_fmt rgb24 -r 10 -f gif out.gif

    这里参数的具体含义如下:

    • -s 60x40 指定了最大宽度和最大高度。这里可以不指定,输出将按照原始大小来。如果指定较小的长宽值,输出将变小。
    • -r 10 将帧数从 25 调整为 10。

如果 ffmpeg 命令找不到,可以使用 Homebrew 进行安装:

brew install ffmpeg

优化 Gif 文件

可以使用 gifsicle 命令对产生的 gif 文件进行压缩:

gifsicle out.gif --optimize=3 -o optimized.gif

这里,--optimize=3 参数要求 gifsicle 使用最高等级优化图片。这会需要更多的时间和 CPU 来计算,但是压缩效果相对也是最好的。

如果找不到 gifsicle 命令,可以使用 Homebrew 进行安装:

brew install gifsicle

经测试,一个 463 KB 的文件,压缩后的大小为 417 KB,压缩了 10%。

以上生成 Gif 和优化 Gif 的命令可以放到一起执行:

ffmpeg -i in.mov -s 60x40 -pix_fmt rgb24 - | gifsicle --optimize=3 > out.gif

参考