figma-export ist ein CLI-Tool für den Massenexport von Figma-, FigJam- und Figma Slides-Dateien auf Ihren lokalen Desktop im proprietären Figma-Format .fig
/ .jam
/ .deck
. figma-export unterstützt das Herunterladen nach Team, Projekt und sogar Entwürfen.
Dieses Tool nutzt die REST-API und Playwright von Figma, um das Erkennen und Herunterladen von Figma-Dateien zu automatisieren.
Andere Versionen funktionieren möglicherweise, wurden jedoch nicht offiziell getestet.
Sie benötigen außerdem ein Figma-Zugriffstoken, das Sie über die Einstellungen Ihres Figma-Benutzerprofils generieren können.
cd
in das Repositorynpm install
Erstellen Sie eine .env
Datei im Stammverzeichnis des Repositorys:
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
Wenn Sie SSO verwenden, um sich bei Figma anzumelden, können Sie entweder manuell ein Passwort festlegen (siehe Wiki) oder Sie können Ihr Figma-Authentifizierungssitzungscookie über FIGMA_AUTH_COOKIE
anstelle von FIGMA_EMAIL
und FIGMA_PASSWORD
bereitstellen:
FIGMA_AUTH_COOKIE= " my-auth-cookie-value "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads "
WAIT_TIMEOUT=10000
Der Wert für FIGMA_AUTH_COOKIE
sollte der Wert des Cookies __Host-figma.authn
sein. Bitte lesen Sie im Wiki nach, wie Sie diesen Wert ermitteln können.
files.json
bestimmt, welche Figma-Dateien in Ihrem Konto heruntergeladen werden.
Tipp
Entwürfe sind nur ein verstecktes Projekt in Figma, Sie können sie also unbedingt mit figma-export herunterladen. Schauen Sie sich das Wiki an, um zu erfahren, wie Sie die Entwurfsprojekt-ID abrufen können.
Es wird empfohlen, einen der integrierten Befehle zum Generieren files.json
zu verwenden:
npm run get-team-files {team_ids ...}
– Ruft alle Dateien für alle Projekte innerhalb der angegebenen Team-IDs ab (durch Leerzeichen getrennt)npm run get-team-files 12345 67890
npm run get-project-files {project_ids ...}
– Ruft alle Dateien für gegebene Projekt-IDs ab (durch Leerzeichen getrennt)npm run get-project-files 12345 67890
Um Ihre Figma-Team-ID zu finden, navigieren Sie zu Ihrer Figma-Startseite, klicken Sie mit der rechten Maustaste auf Ihr Team in der linken Seitenleiste und klicken Sie dann auf Link kopieren . Das letzte Segment der URL, die Sie kopiert haben, enthält Ihre Team-ID: https://www.figma.com/files/team/1234567890
.
Um eine Projekt-ID zu finden, navigieren Sie zur Startseite Ihres Teams, klicken Sie mit der rechten Maustaste auf das Projekt und klicken Sie dann auf Link kopieren . Das letzte Segment der URL, die Sie kopiert haben, enthält die Projekt-ID: https://www.figma.com/files/project/1234567890
.
Es steht Ihnen frei, diese Datei manuell zu erstellen, solange sie dieser Struktur folgt:
[
{
"name" : String,
"id" : String,
"team_id" : String?,
"files" : [
{
"key" : String,
"name" : String
},
...
]
},
...
]
Dies ist eine modifizierte Struktur des Rückgabewerts des GET-Projektdateien-Endpunkts von Figma.
Sobald Sie files.json
generiert haben, können Sie npm run start
ausführen, um die Downloads zu starten. Der Status jedes Downloads wird in der Konsole angezeigt.
Jede Datei wird in Ihren angegebenen DOWNLOAD_PATH
in einem Ordner heruntergeladen, der nach dem Namen und der ID des Projekts benannt ist. Jede Datei wird unter dem Namen und der ID (Schlüssel) der Datei gespeichert. Die Ordnerstruktur sieht in etwa so aus:
Project A (12345)/
├── File X (123).fig
└── File Y (456).fig
Project B (67890)/
└── File Z (789).fig
Wenn Sie get-team-files
ausgeführt haben, enthält Ihre files.json
auch Verweise auf die Team-ID(s), sodass Projekte in einem Ordner abgelegt werden, der nach der Team-ID benannt ist. In diesem Fall sieht die Ordnerstruktur etwa so aus:
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
Parallele Downloads sind standardmäßig deaktiviert. Um sie zu aktivieren, aktualisieren Sie die folgenden Eigenschaften in playwright.config.ts
:
export default defineConfig ( {
...
fullyParallel : true ,
workers : 3 , // The maximum number of parallel downloads
...
} ) ;
Wenn Sie auf fehlgeschlagene Downloads stoßen, können Sie mit dem Befehl npm run retry
versuchen , nur diese fehlgeschlagenen Downloads erneut auszuführen.
Beachten Sie, dass Downloads aus verschiedenen Gründen fehlschlagen können, in der Regel liegt dies jedoch am Erreichen des Playwright-Timeouts. Sie können dieses Timeout erhöhen, indem Sie die timeout
-Konfiguration in playwright.config.ts
aktualisieren.
Die folgenden Befehle sind über npm run
verfügbar:
Befehl | Beschreibung |
---|---|
get-team-files | Erzeugt files.json aus Figma-Team-ID(s) |
get-project-files | Erzeugt files.json aus Figma-Projekt-ID(s) |
start | Startet Downloads |
retry | Wiederholt fehlgeschlagene Downloads der letzten Ausführung |
dry-run | Listet Dateien auf, die heruntergeladen werden |
report | Zeigen Sie einen HTML-Bericht des letzten Laufs an |
Sie können jederzeit ctrl+c
drücken, um einen Befehl zu stoppen.
timeout
in playwright.config.ts
zu erhöhen).WAIT_TIMEOUT
).