Figma-export 是一個 CLI 工具,用於以 Figma 專有的.fig
/ .jam
/ .deck
格式將 Figma、FigJam 和 Figma Slides 檔案批次匯出到本機桌面。 Figma-export 支援按團隊、專案甚至草稿進行下載。
該工具利用 Figma 的 REST API 和 Playwright 自動發現 Figma 檔案並下載它們。
其他版本可能可以工作,但尚未經過官方測試。
您還需要一個 Figma 存取令牌,可以透過 Figma 使用者設定檔設定產生該令牌。
cd
到儲存庫npm install
在儲存庫的根目錄建立一個.env
檔:
FIGMA_EMAIL= " [email protected] "
FIGMA_PASSWORD= " hunter2 "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads " # Absolute path where files will be downloaded to
WAIT_TIMEOUT=10000 # Time in ms to wait between downloads
如果您使用 SSO 登入 Figma,您可以手動設定密碼(請參閱 wiki) ,也可以透過FIGMA_AUTH_COOKIE
取代FIGMA_EMAIL
和FIGMA_PASSWORD
提供Figma 驗證會話cookie:
FIGMA_AUTH_COOKIE= " my-auth-cookie-value "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads "
WAIT_TIMEOUT=10000
FIGMA_AUTH_COOKIE
的值應該是__Host-figma.authn
cookie 的值。如何取得這個值請參考wiki。
files.json
決定將下載您帳戶中的哪些 Figma 檔案。
提示
草稿只是Figma 中的一個隱藏項目,因此您絕對可以使用figma-export 下載它們。查看 wiki 以了解如何取得草稿項目 ID。
建議您使用內建命令之一來產生files.json
:
npm run get-team-files {team_ids ...}
- 取得給定團隊 ID 內所有項目的所有檔案(空格分隔)npm run get-team-files 12345 67890
npm run get-project-files {project_ids ...}
- 取得所有給定項目 ID 的檔案(空格分隔)npm run get-project-files 12345 67890
若要尋找您的 Figma 團隊 ID,請導覽至您的 Figma 主頁,右鍵點選左側邊欄中的您的團隊,然後按一下複製連結。您複製的 URL 的最後一段將包含您的團隊 ID: https://www.figma.com/files/team/1234567890
://www.figma.com/files/team/1234567890 。
若要尋找項目 ID,請導覽至團隊主頁,以滑鼠右鍵按一下該項目,然後按一下複製連結。您複製的 URL 的最後一段將包含項目 ID: https://www.figma.com/files/project/1234567890
://www.figma.com/files/project/1234567890 。
您可以自由地手動建立該文件,只要它遵循以下結構即可:
[
{
"name" : String,
"id" : String,
"team_id" : String?,
"files" : [
{
"key" : String,
"name" : String
},
...
]
},
...
]
這是 Figma 的 GET 專案檔案端點的傳回值的修改結構。
產生files.json
後,您可以執行npm run start
開始下載。每次下載的狀態將顯示在控制台中。
每個檔案都將下載到您指定的DOWNLOAD_PATH
中以項目名稱和 ID 命名的資料夾中。每個檔案將被儲存為檔案名稱和 ID(密鑰)。資料夾結構將如下所示:
Project A (12345)/
├── File X (123).fig
└── File Y (456).fig
Project B (67890)/
└── File Z (789).fig
如果您執行get-team-files
,您的files.json
也會引用團隊 ID,因此專案將放置在以團隊 ID 命名的資料夾中。在這種情況下,資料夾結構將如下所示:
1029384756/
├── Project A (12345)/
│ ├── File X (123).fig
│ └── File Y (456).fig
└── Project B (67890)/
└── File Z (789).fig
5647382910/
└── Project C (45678)/
└── File W (012).fig
預設情況下禁用並行下載。若要啟用它們,請更新playwright.config.ts
中的下列屬性:
export default defineConfig ( {
...
fullyParallel : true ,
workers : 3 , // The maximum number of parallel downloads
...
} ) ;
如果遇到下載失敗,您可以嘗試使用npm run retry
命令僅重新執行那些失敗的下載。
請注意,下載可能會因多種原因而失敗,但通常是由於達到劇作家超時。您可以透過更新playwright.config.ts
中的timeout
配置來增加此逾時。
透過npm run
可以使用以下命令:
命令 | 描述 |
---|---|
get-team-files | 從 Figma 團隊 ID 產生files.json |
get-project-files | 從 Figma 專案 ID 產生files.json |
start | 開始下載 |
retry | 重試上次執行失敗的下載 |
dry-run | 列出將要下載的文件 |
report | 顯示上次運行的 HTML 報告 |
您可以隨時按ctrl+c
停止指令。
playwright.config.ts
中的timeout
)WAIT_TIMEOUT
)