javascript / expert
Snippet
Benutzerdefinierte ESM-Transformationshooks
Node.js ESM-Loader ermöglichen es Entwicklern, den Lebenszyklus des Modulladens abzufangen. Durch den Export eines 'load'- oder 'resolve'-Hooks können Sie Quellcode im laufenden Betrieb transformieren, benutzerdefinierte Protokolle implementieren oder nicht standardmäßige Dateierweiterungen ohne Vorkompilierungsschritte verarbeiten.
snippet.js
1
2
3
4
5
6
7
8
9
// loader.mjsexport async function load(url, context, nextLoad) {if (url.endsWith('.custom')) {const { source } = await nextLoad(url, { ...context, format: 'module' });const transformed = source.toString().replace(/@SECRET/g, '"REDACTED"');return { format: 'module', shortCircuit: true, source: transformed };}return nextLoad(url);}
nodejs
Erklärung
1
export async function load(url, context, nextLoad) {
Der Hook, der von Node.js aufgerufen wird, wenn ein Modul geladen wird.
2
shortCircuit: true,
Gibt an, dass dieser Hook die Anfrage bearbeitet hat und keine weiteren Hooks aufgerufen werden sollen.
3
source: transformed
Der modifizierte Quellcode, den Node.js als Modul auswerten wird.