2012-12-31 10 views
10

Gibt es irgendwelche Tools oder Forks von TypeScript, die die öffentliche Namensraumverschleierung unterstützen? I.e. drehen:TypeScript Obfuscation

class MyUtil { 
    print(): void { ... } 
} 

in so etwas wie:

class xxy { 
    aab(): void { ... } 
} 

Wenn nicht, wird gerade nach vorne wäre, den Compiler gabeln dies zu schaffen? Vielleicht mit irgendeiner Art von Klassenanmerkungsangabe, was nicht verschleiert werden sollte/sollte.

(Offensichtlich Öffentliche Verschleierungs muss sorgfältig verwendet werden, nicht gut für Bibliotheken! Aber toll, wenn konsequent in Ihrem Projekt verwendet)

+0

Mögliches Duplikat von https://stackoverflow.com/questions/12682268/is-it-possible-to-compile-typescript-into-minified-code. –

Antwort

5

Ich glaube nicht, es aus irgendeinem Grunde dies in Typoskript zu tun ist. Sie können stattdessen etwas wie Closure Compiler verwenden, um die Verschleierung Ihrer JavaScript-Ausgabe zu tun. Schauen Sie speziell in Closures Advanced Compilation Einstellungen.

+4

Ich schätze, dass es auf Plain JS mit anderen Tools gemacht werden könnte. Aber ich denke, es macht Sinn, es als Teil des TS-Compilers zu tun, es wird die Anzahl der separaten Tools reduzieren, die Sie installieren müssen, wenn nichts anderes. Ich würde gerne sehen, dass TS Minifikations- und Verschleierungsoptionen bietet. – user826840

+2

Es macht absolut Sinn, dass Typoskript über Verschleierung "weiß". Ich möchte gezwungen werden, Eigenschaften explizit als 'öffentlich' (oder exportiert oder was auch immer) zu markieren, die ich für meine HTML-Seite benötigt. Zum Beispiel verwende ich Knockout und ich muss an einige Eigenschaften im Viewmodel binden, aber nicht an alle, oder vielleicht habe ich private Funktionen. Wenn Typescript das für mich erledigen könnte, würde ich viel effizienteren Code bekommen, wo ein Standard-Obfuscator möglicherweise nicht genug Informationen hat, um die Entscheidung zu treffen. –

1

Ich hatte genau die gleiche Frage, und es wurde sofort von SO gelöscht.

https://github.com/angular/ts-minify

Das ist genau das Werkzeug, das Sie (und ich) suchen, ist es ziemlich gut zu funktionieren scheint, brauchte ich ein paar Teile kommentieren, wo die der Autor wurde unter Vorsichtsmaßnahmen Ich glaube nicht, sind anwendbar.

+0

Der wahrscheinlichste Grund, warum Ihre Frage geschlossen wurde, ist, dass Sie nach Werkzeugempfehlungen gefragt haben, die speziell für SO nicht geeignet sind. Siehe https://meta.stackoverflow.com/questions/254393/what-exactly-is-a-recommendation-question –

+0

Ich habe wirklich immer noch das Gefühl, ts-minify ist die Antwort, die Sie suchen, haben Sie es versucht und es funktioniert nicht? – user378380