#!/bin/sh # Next standalone çıktısında eksik kök node_modules linklerini tamamlar. # # Neden: Turbopack, serverExternalPackages'taki ESM paketleri (openai, # resend) çalışma anında bare import ile yükler ama nft # trace'ine yalnızca .pnpm gerçek yollarını yazar — kök symlink standalone'a # kopyalanmaz ve import MODULE_NOT_FOUND ile düşer. (CJS external'larda — # better-sqlite3, iyzipay — symlink trace'e giriyor, sorun yalnızca ESM'de.) # Bu script .pnpm altındaki her paket için eksik kök girdisini symlink'ler; # mevcut girdilere dokunmaz. Yeni bir external eklendiğinde de kendiliğinden # kapsar, paket adı/versiyon sabitlemez. set -eu KOK="${1:-.next/standalone}/node_modules" [ -d "$KOK/.pnpm" ] || { echo "standalone .pnpm yok, atlandi: $KOK"; exit 0; } cd "$KOK" for d in .pnpm/*/node_modules/*; do [ -e "$d" ] || continue base=${d##*/} case "$base" in .*) continue ;; @*) for sub in "$d"/*; do [ -d "$sub" ] || continue hedef="$base/${sub##*/}" if [ ! -e "$hedef" ]; then mkdir -p "$base" ln -s "../$sub" "$hedef" echo "link: $hedef" fi done ;; *) if [ ! -e "$base" ]; then ln -s "$d" "$base" echo "link: $base" fi ;; esac done