figma-export es una herramienta CLI para exportar de forma masiva archivos Figma, FigJam y Figma Slides a su escritorio local en el formato patentado .fig
/ .jam
/ .deck
de Figma. figma-export admite la descarga por equipo, proyecto e incluso borradores.
Esta herramienta aprovecha la API REST de Figma y Playwright para automatizar el descubrimiento de archivos de Figma y su descarga.
Es posible que otras versiones funcionen, pero no han sido probadas oficialmente.
También necesitará un token de acceso a Figma que puede generar a través de la configuración de su perfil de usuario de Figma.
cd
en el repositorionpm install
Cree un archivo .env
en la raíz del repositorio:
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
Si está utilizando SSO para iniciar sesión en Figma, puede establecer manualmente una contraseña (ver wiki) o puede proporcionar su cookie de sesión de autenticación de Figma a través de FIGMA_AUTH_COOKIE
en lugar de FIGMA_EMAIL
y FIGMA_PASSWORD
:
FIGMA_AUTH_COOKIE= " my-auth-cookie-value "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads "
WAIT_TIMEOUT=10000
El valor de FIGMA_AUTH_COOKIE
debe ser el valor de la cookie __Host-figma.authn
. Consulte la wiki sobre cómo obtener este valor.
files.json
determina qué archivos Figma dentro de su cuenta se descargarán.
Consejo
Los borradores son solo un proyecto oculto en Figma, por lo que puedes descargarlos absolutamente con figma-export. Consulte la wiki para aprender cómo obtener el ID del proyecto en borrador.
Se recomienda utilizar uno de los comandos integrados para generar files.json
:
npm run get-team-files {team_ids ...}
: obtiene todos los archivos de todos los proyectos dentro de los ID de equipo determinados (separados por espacios)npm run get-team-files 12345 67890
npm run get-project-files {project_ids ...}
: obtiene todos los archivos para los ID de proyecto determinados (separados por espacios)npm run get-project-files 12345 67890
Para encontrar la ID de su equipo de Figma, navegue hasta su casa de Figma, haga clic derecho en su equipo en la barra lateral izquierda y luego haga clic en Copiar enlace . El último segmento de la URL que copió contendrá el ID de su equipo: https://www.figma.com/files/team/1234567890
.
Para encontrar un ID de proyecto, navegue hasta la casa de su equipo, haga clic derecho en el proyecto y luego haga clic en Copiar enlace . El último segmento de la URL que copió contendrá el ID del proyecto: https://www.figma.com/files/project/1234567890
.
Eres libre de construir manualmente este archivo siempre que siga esta estructura:
[
{
"name" : String,
"id" : String,
"team_id" : String?,
"files" : [
{
"key" : String,
"name" : String
},
...
]
},
...
]
Esta es una estructura modificada del valor de retorno del punto final de los archivos del proyecto GET de Figma.
Una vez que haya generado files.json
, puede ejecutar npm run start
para iniciar las descargas. El estado de cada descarga se mostrará en la consola.
Cada archivo se descargará en su DOWNLOAD_PATH
especificado en una carpeta denominada con el nombre y el ID del proyecto. Cada archivo se guardará con el nombre del archivo y su ID (clave). La estructura de carpetas se verá así:
Project A (12345)/
├── File X (123).fig
└── File Y (456).fig
Project B (67890)/
└── File Z (789).fig
Si ejecutó get-team-files
, su files.json
también tendrá referencias a los ID del equipo, por lo que los proyectos se colocarán en una carpeta con el nombre del ID del equipo. En cuyo caso, la estructura de carpetas se verá así:
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
Las descargas paralelas están deshabilitadas de forma predeterminada. Para habilitarlos, actualice las siguientes propiedades en playwright.config.ts
:
export default defineConfig ( {
...
fullyParallel : true ,
workers : 3 , // The maximum number of parallel downloads
...
} ) ;
Si encuentra descargas que fallan, puede intentar volver a ejecutar solo esas descargas fallidas usando el comando npm run retry
.
Tenga en cuenta que las descargas pueden fallar por diversos motivos, pero normalmente se debe a que se ha alcanzado el tiempo de espera de Playwright. Puede aumentar este tiempo de espera actualizando la configuración timeout
en playwright.config.ts
.
Los siguientes comandos están disponibles a través de npm run
:
Dominio | Descripción |
---|---|
get-team-files | Genera files.json a partir de los ID del equipo de Figma. |
get-project-files | Genera files.json a partir de los ID del proyecto Figma. |
start | Inicia descargas |
retry | Reintentos de descargas fallidas desde la última ejecución |
dry-run | Enumera los archivos que se descargarán |
report | Mostrar un informe HTML de la última ejecución |
En cualquier momento, puede presionar ctrl+c
para detener un comando.
timeout
en playwright.config.ts
).WAIT_TIMEOUT
).