Wakaru ist der JavaScript -Dekompiler für die moderne Frontend. Es bringt den ursprünglichen Code von einer gebündelten und transpilierten Quelle zurück.
Detaillierte Beispiele finden Sie unter Live -Demo.
Konvertiert den transpilierten Code in seine lesbare Form und stellt die heruntergestuften Syntaxe wieder her.
Unterstützt die folgenden Transpiler:
Lesen Sie die Dokumentation für weitere Informationen.
Konvertiert gebündeltes JavaScript in getrennte Module
Unterstützt die folgenden Bundler:
Testen Sie das Tool und sehen Sie es auf dem Spielplatz in Aktion.
Standardmäßig wird die CLI im interaktiven Modus ausgeführt und Sie durch den Prozess führen.
Sie können auch Optionen übergeben, um einige Schritte im interaktiven Modus zu überspringen.
npx @wakaru/cli
# or
pnpm dlx @wakaru/cli Führen Sie npx @wakaru/cli --help aus, um die vollständige Liste der Optionen anzuzeigen.
| Option | Standard | Beschreibung |
|---|---|---|
--output | "out" | Ausgabeverzeichnis |
--force | false | Überschreibe -Output -Verzeichnis erzwingen |
--concurrency | 1 | Spezifisch die Anzahl der gleichzeitigen Aufgaben |
--perf | false | Performance -Metriken zeigen |
--perf-output | Leistungsmetriken Ausgabeverzeichnis |
--concurrency kann verwendet werden, um den Prozess zu beschleunigen. Beachten Sie jedoch, dass der Prozess möglicherweise oom ist, wenn die Eingabedatei zu groß ist.
Wenn Sie die CLI im nicht-interaktiven Modus ausführen möchten, können Sie die Funktion angeben, indem Sie den Feature-Namen als erstes Argument übergeben.
unpacker und unminify werden nur die entsprechende Funktion ausgeführt.
all werden sowohl unpacker als auch unminify ausführen.
npx @wakaru/cli all <files...> [options]
npx @wakaru/cli unpacker <files...> [options]
npx @wakaru/cli unminify <files...> [options]
Diese Optionen sind nur im all Modus verfügbar.
| Option | Standard | Beschreibung |
|---|---|---|
--unpacker-output | "out/unpack" | Überschreiben Sie das Ausgabeverzeichnis der Entpacker |
--unminify-output | "out/unminify" | Überschreiben Sie das Verzeichnis des Unminking Unminking Outputory |
Bei Ausführen einer einzigen Funktion (entweder unpacker oder unminify ) verwendet die CLI nur den Pfad, der in der Option --output -Option angegeben ist. Dies bedeutet, dass im Allgemeinen im all , in dem Subdirektorien ( out/unpack und out/unminify ) im Einzelfunktionsmodus automatisch im Ausgabeverzeichnis erstellt werden, direkt in das angegebene Verzeichnis --output ohne zusätzliche Subdirektorien) platziert werden.
npm install @wakaru/unpacker @wakaru/unminify
# or
pnpm install @wakaru/unpacker @wakaru/unminify
# or
yarn add @wakaru/unpacker @wakaru/unminify@wakaru/unpacker import { unpack } from '@wakaru/unpacker' ;
const { modules , moduleIdMapping } = await unpack ( sourceCode ) ;
for ( const mod of modules ) {
const filename = moduleIdMapping [ mod . id ] ?? `module- ${ mod . id } .js` ;
fs . writeFileSync ( outputPath , mod . code , 'utf-8' ) ;
}@wakaru/unminify import { runDefaultTransformationRules , runTransformationRules } from '@wakaru/unminify' ;
const file = {
source : '...' , // source code
path : '...' , // path to the file, used for advanced usecases. Can be empty.
}
// This function will apply all rules that are enabled by default.
const { code } = await runDefaultTransformationRules ( file ) ;
// You can also specify the rules to apply. Order matters.
const rules = [
'un-esm' ,
...
]
const { code } = await runTransformationRules ( file , rules ) ;Sie können alle Regeln unter /unminify/src/transformations/index.ts überprüfen.
Bitte bewusst, dass dieses Projekt noch in der frühen Entwicklung ist. Die API könnte sich in Zukunft ändern.
Und die Bündelgröße dieser Pakete ist riesig. Es könnte in Zukunft reduziert werden. Verwenden Sie mit Vorsicht auf dem Browser (ja, wie auf dem Spielplatz kann es auf dem Browser ausgeführt werden).
Die Verwendung von wakaru für das Angriff von Zielen ohne vorherige gegenseitige Zustimmung ist illegal. Es liegt in der Verantwortung des Endbenutzers, allen geltenden lokalen, staatlichen und bundesstaatlichen Gesetzen zu folgen. Entwickler übernehmen keine Haftung und sind nicht für Missbrauch oder Schäden verantwortlich, die durch dieses Programm verursacht werden.
MIT