Configuración Avanzada del Entorno de Desarrollo para AFFiNE: Guía Integral desde Instalación hasta Empaque

AFFiNE es una plataforma de código abierto diseñada como un entorno unificado para gestión de conocimiento, creación colaborativa, wikis interactivas y presentaciones dinámicas. Inspirada en herramientas como Notion y Miro, pero con arquitectura modular y soporte nativo para Rust y Electron, ofrece flexibilidad extrema para personalización y despliegue multiplataforma.

Herramientas Fundamentales

Para compilar y ejecutar AFFiNE localmente, se requieren tres pilares tecnológicos:

  • Node.js v20.x LTS: preferiblemente gestionado mediante fnm para evitar conflictos de versiones.
  • Rust 1.75+: instalado mediante rustup, necesario para los módulos @affine/native y @affine/server-native.
  • Yarn v4.3+: activado con corepack y configurado en modo classic para compatibilidad con workspaces complejos.

Clonación y Preparación del Proyecto

Clone el repositorio oficial usando HTTPS (recomendado para entornos restringidos):

git clone https://github.com/toeverything/AFFiNE.git
cd AFFiNE

En sistemas Windows, habilite los enlaces simbólicos antes de clonar:

git config --global core.symlinks true

Luego instale las dependencias con:

yarn install --immutable

Compilación de Componentes Críticos

Ejecute los siguientes comandos secuencialmente para construir los núcleos nativos:

yarn affine @affine/native build --release
yarn affine @affine/server-native build --release

Esto genera binarios optimizados bajo packages/native/target/release/ y packages/server-native/target/release/.

Ejecución en Modo Desarrollo

Inicie el servidor frontend y backend simultáneamente con:

yarn dev

La interfaz estará disponible en http://localhost:3000. El sistema recarga automáticamente al modificar componentes React o bloques de contenido.

Generación de Aplicaciones de Escritorio

Para empaquetar la versión de escritorio, use los siguientes flujos según su sistema operativo:

macOS / Linux

BUILD_TYPE=canary yarn affine @affine/electron build
BUILD_TYPE=canary yarn affine @affine/electron generate-assets
BUILD_TYPE=canary SKIP_WEB_BUILD=1 HOIST_NODE_MODULES=1 yarn affine @affine/electron make

Windows (PowerShell)

$env:BUILD_TYPE="canary"
$env:DISTRIBUTION="desktop"
$env:SKIP_WEB_BUILD="1"
$env:HOIST_NODE_MODULES="1"
yarn affine @affine/electron package
yarn affine @affine/electron make-squirrel
yarn affine @affine/electron make-nsis

Los instaladores resultantes se ubican en packages/frontend/apps/electron/out/canary/make/.

Validación Automatizada

Ejecute pruebas unitarias y E2E para verificar integridad funcional:

yarn test --coverage
yarn workspace @affine-test/affine-local e2e --headed

Las pruebas E2E utilizan Playwright y validen flujos como creación de páginas, importación de Markdown y sincronización offline.

Soporte Móvil y Accesibilidad

El frontend está construido con Next.js y Tailwind CSS, garantizando adaptabilidad responsiva. Al acceder desde dispositivos móviles a http://localhost:3000, se activa automáticamante un layout optimizado con gestos táctiles y menús colapsables.

Solución de Errores Comunes

  • "EPERM: operation not permitted" en Windows: ejecute PowerShell como administrador y desactive temporalmente el antivirus.
  • Fallo en yarn install: limpie caché y fuerce reinstalación: yarn cache clean && rm -rf node_modules && yarn install.
  • Retrasos en compilación: active el modo incremental con yarn affine @affine/native build --incremental.

Etiquetas: AFFiNE Rust Electron YARN Next.js

Publicado el 10-8 19:58