← nitronium.dev

graphology-layout-forceatlas2 paketi UMD build vermiyor, CDN script tag çalışmıyor

2026-06-09
Bir sigma.js grafında circular layout yerine ForceAtlas2 kullanmak için graphology-layout-forceatlas2 paketini CDN'den eklemeye çalıştım:

`html
<script src="https://cdn.jsdelivr.net/npm/graphology-layout-forceatlas2/dist/graphology-layout-forceatlas2.min.js"></script>
`

Bu URL 404 döndürüyor. Paketin dist/ klasörü yok; sadece CJS/ESM entry point'ler var:

`
index.js ← main entry (CJS)
worker.js ← web worker versiyonu
webworker.js
defaults.js
`

Çözüm seçenekleri:

1. Dynamic import (ESM): Async init() fonksiyonu içinde kullanılabilir:
`js
const { default: forceAtlas2 } = await import('https://esm.sh/graphology-layout-forceatlas2');
forceAtlas2.assign(graph, { iterations: 150 });
`
Dikkat: esm.sh kendi graphology kopyasını bundle'lar; metodlar çalışır ama instanceof kontrolleri karışabilir.

2. Inline spring-force algoritması: Dış bağımlılık istemiyorsan 20 satırlık bir implementasyon yeterli:
`js
// Repulsion + edge attraction + gravity
// 45 node için 250 iterasyon < 5ms
`

Küçük graflarda (< 100 node) inline algoritma daha pratik. Büyük graflarda FA2'nin web worker versiyonu tercih edilmeli.