Skip to content

Figma to Sketch 转换工具

fig2sketch 是一个将 Figma 设计文件转换为 Sketch 格式的命令行工具。

安装要求

  • macOS 系统
  • Homebrew 包管理器
  • Python 3.11
  • Sketch(已安装)

安装步骤

  1. 安装 Python 3.11(如果尚未安装):

    bash
    brew install python@3.11
    python3.11 --version
  2. 安装 pipx(Python 应用安装工具):

    bash
    brew install pipx
    pipx ensurepath
  3. 如果已安装旧版本,请先卸载:

    bash
    pipx uninstall fig2sketch
  4. 根据你的 Sketch 版本选择安装命令:

    • 对于 Sketch < 101 版本:

      bash
      pipx install "fig2sketch==0.3.6" --python /opt/homebrew/bin/python3.11
    • 对于 Sketch ≥ 101 版本:

      bash
      pipx install "fig2sketch>=0.3.7" --python /opt/homebrew/bin/python3.11
  5. 验证安装:

    bash
    fig2sketch --version

使用方法

将 Figma 设计文件(.fig)转换为 Sketch 文件:

bash
fig2sketch input.fig output.sketch

批量处理

bash
#!/bin/bash

# 当前目录作为源文件夹
SOURCE_DIR="$(pwd)"

# 目标文件夹
OUTPUT_DIR="$SOURCE_DIR/fig2sketch"
mkdir -p "$OUTPUT_DIR"

# 获取 CPU 核心数(逻辑核心)
MAX_JOBS=$(sysctl -n hw.ncpu)
echo "使用 $MAX_JOBS 个并行任务进行转换"

# 转换计数
count=0

# 遍历 .fig 文件
for fig_file in "$SOURCE_DIR"/*.fig; do
    # 检查是否有文件匹配
    [ -e "$fig_file" ] || { echo "没有找到 .fig 文件"; break; }

    filename=$(basename "$fig_file" .fig)

    # 后台运行转换
    fig2sketch "$fig_file" "$OUTPUT_DIR/$filename.sketch" &

    # 控制同时运行任务数量
    while [ $(jobs -r | wc -l) -ge $MAX_JOBS ]; do
        sleep 1
    done

    echo "转换开始: $filename.fig -> $filename.sketch"
done

# 等待所有后台任务完成
wait

echo "🎉 所有文件转换完成,输出目录: $OUTPUT_DIR"

更改文件权限

bash
chmod +x batch_convert_fig2sketch.sh
bash
sudo spctl --master-disable
bash
xattr -cr .app 路径

常见问题

  1. 安装失败

    • 确保已安装正确版本的 Python 3.11
    • 检查 pipx 是否正确安装并添加到 PATH
    • 确保有足够的权限安装全局包
  2. 转换问题

    • 确保 Figma 文件已正确导出为 .fig 格式
    • 检查 Sketch 版本是否与安装的 fig2sketch 版本兼容

注意事项

  • 转换过程中可能会丢失某些 Figma 特定的功能或效果
  • 复杂的设计元素可能无法完美转换,建议转换后进行检查
  • 定期检查并更新到最新版本的 fig2sketch 以获得最佳兼容性

待开发

  • 支持拖拽选择文件
  • 支持多选文件
  • 支持终止当前任务 / 删除对应未完成的文件
  • 日志流式输出,而不是等待 stdout 完全走完再输出