Ana içeriğe geç

ESM Kayıt API'si

ESM Kayıt API'si, geliştirmeyi çalışma zamanında manuel olarak kaydetmenizi sağlar. Ancak, bunun yalnızca ESM (.mjs/.mts ve .js/.ts package.json#type module olduğunda) üzerinde etkili olduğunu unutmayın.

Kullanım

import { register } from 'tsx/esm/api'

// tsx geliştirmesini kaydet
const unregister = register()

await import('./file.ts')

// Gerektiğinde kaydı kaldır
unregister()

Kapsamlı kayıt

Tüm çalışma zamanı ortamını etkilemeden kayıt olmak istiyorsanız, bir ad alanı ekleyebilirsiniz.

bilgi

Bir ad alanı sağlandığında, dosyaları yüklemek için özel bir import() yöntemi döndürecektir.

import { register } from 'tsx/esm/api'

const api = register({
// Benzersiz bir ad alanı geçin
namespace: Date.now().toString()
})

// İstek ve mevcut dosya yolunu geçin
// Bu ad alanı kullanıldığından, önceki ithalatlardan önbellek vuruşu almayacaktır
const loaded = await api.import('./file.ts', import.meta.url)

// Bu, yukarıdakiyle aynı ad alanını kullanıyor, bu nedenle bir önbellek vuruşu verecektir
const loaded2 = await api.import('./file.ts', import.meta.url)

api.unregister()

Yüklenen dosyaları takip etme

onImport kancası ile yüklenen dosyaları algılayın. Bu, bir izleyici kurarken bağımlılıkları takip etmek istediğinizde yararlı olabilir.

ipucu

Yüklenen dosyaları izlemek için onImport fonksiyonu içerisinde dosya adını konsola yazdırabilirsiniz.

register({
onImport: (file: string) => {
console.log(file) // 'file:///foo.ts'
}
})