2017-12-21 2 views
0

Also habe ich versehentlich mein Angular 4-Projekt gelöscht, aber ich habe noch dist Ordner mit allen Bundles und Code gepackt. Gibt es irgendeine Möglichkeit, das gesamte Projektlayout wiederherzustellen, damit ich in meinem Editor weiter programmieren kann oder ist es für immer weg? Danke.Wiederherstellung von Angular 4 Projekt von Dist-Ordner

+0

ctrl + z? Papierkorb? Meine Gedanken sind, dass dies nicht möglich sein wird. Es würde es zu leicht machen, die kantigen Websites anderer Leute zu übernehmen. – Sam

+0

Ich denke es ist schwer Glück – Oswald

+0

Leider löschte ich es irgendwie mit GIT, also habe ich sie nicht in meinem Mülleimer. Es war vor ein paar Tagen, ich weiß, dass ich das System wiederherstellen kann, aber das ist keine Option. – petar11199

Antwort

2

Nr

Wenn Sie keine Projektdateien haben, können Sie nicht Angular Anwendung Reverse-Engineering zurück Quelle zu erhalten. Sie können einen Blick auf den kompilierten Code werfen, um eine Geschäftslogik zu erhalten, wenn diese nicht zu eng mit der View-Engine von Angular verbunden ist (was nicht sein sollte, wenn Sie mit Best Practices entwickelt haben) und versuchen, diese wiederherzustellen.

Es ist wie der Versuch, von 5 auf 2 + 3 zurückzugehen. Sie haben keine Ahnung, ob es 3 + 2, 1 + 4, 4 + 1 war. Angular kompiliert Ihre Anwendung, und es gibt keine 1-1 Mapping . Insbesondere wenn Sie bedenken, dass Sie auch TypeScript verwendet haben. Angulars Build produziert zwei Compiler und einen Bundler vom Original. Irreversibel.

Hier ist eine detailliertere Aufschlüsselung der Kompilierung.

  1. Ihr in TypScript geschriebener Angular-Code wird vom Angular-Compiler in einen anderen TypeScript-Code kompiliert. Dieser Prozess ist theoretisch möglicherweise reversibel, abhängig davon, wie der Angular-Compiler funktioniert (ich bin dazu nicht in der Lage, darüber zu sprechen).
  2. Dann wird TypeScript auf JavaScript kompiliert. Dies ist irreversibel
  3. Ein Bundler (wie Webpack, Rollup, SystemJS oder Parcel) vermasselt mit Ihrem Code, einschließlich wer-weiß, wie viele Plugins mit Ihrem Code zu tun haben. Die meisten von ihnen sind irreversibel. Die tatsächliche Bündelung kann je nach Implementierung reversibel sein.
  4. Die resultierenden Bündel (oder ein einzelnes) werden minimiert. Die Irreversibilität hängt auch davon ab, wie schwer die Minifizierung war. Wenn Sie beispielsweise den Closure-Compiler von Google mit erweiterten Einstellungen verwenden, ist die Rückgabe des ursprünglichen Codes per Definition irreversibel.
+0

Ja, das habe ich mir gedacht, Danke für die Antwort! – petar11199

+0

Sie können versuchen, die Dateien zu deofuscieren. Sie können z.B. http://jsbeautifier.org/ – Eliseo

+0

Was @Eliseo vorschlägt, ist der einfachste Schritt und würde Sie nirgendwohin führen. Die Kette ist wie folgt: (1) Quellcode (2) Ausgabe von Angular Compiler (3) Ausgabe von TypeScript Compiler (4) Ausgabe von Bundler wie Webpack (5) Ausgabe eines Minifier. Deobfuscation bringt dich von 5 zurück zu 4, aber das war's. –