← 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.