2012-12-31 22 views
10

Czy są jakieś narzędzia lub rozwidlenia TypeScript do obsługi publicznego zaciemniania przestrzeni nazw? To znaczy. aby włączyć:TypeScript Obfuskation

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

Into coś takiego:

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

Jeśli nie, to byłoby być proste do stołu kompilatora, aby zapewnić tym? Być może z jakimś typem adnotacji klasy, co powinno/nie powinno być zaciemniane.

(zaciemniania Oczywiście publiczna musi być stosowany ostrożnie, nie jest dobre dla bibliotek! Ale super, jeśli stosowane konsekwentnie w całej projektu)

+0

Prawdopodobny duplikat https://stackoverflow.com/questions/12682268/is-it-possible-to-compile-typescript-into-minified-code. –

Odpowiedz

5

nie wierzą, że istnieje jakikolwiek powód, aby to zrobić w maszynopisie. Zamiast tego możesz użyć czegoś takiego, jak Kompilator końcowy, aby zrobić zaciemnienie na wyjściach JavaScript. W szczególności zajrzyj do ustawień Closure Advanced Compilation.

+4

Doceniam, że można to zrobić na zwykłym JS z innymi narzędziami. Ale myślę, że ma sens, aby zrobić to jako część kompilatora TS, to zmniejszy liczbę oddzielnych narzędzi, które trzeba zainstalować, jeśli nic innego. Chciałbym zobaczyć TS oferującą opcje zminimalizowania i zaciemniania. – user826840

+2

Absolutnie sensowne jest, aby Maszyescript "wiedział" o zaciemnianiu. Chcę być zmuszony do wyraźnego oznaczania właściwości jako "publicznych" (lub eksportowanych lub cokolwiek innego), które muszę wystawić na moją stronę HTML. Na przykład używam Knockout i muszę powiązać niektóre właściwości w viewmodelu, ale nie wszystkie, lub może mam prywatne funkcje. Jeśli Maszyniopis poradziłby sobie z tym, uzyskałbym o wiele bardziej efektywny kod, w którym standardowy obfuscator może nie mieć wystarczającej ilości informacji, aby podjąć decyzję. –

1

Miałem dokładnie to samo pytanie i zostało ono natychmiast usunięte przez SO.

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

To jest dokładnie narzędzie ty (i ja) szuka, to wydaje się całkiem dobrze, musiałem wypowiedzieć się na kilka części, gdzie autor brał środki ostrożności nie sądzę mają zastosowanie.

+0

Najbardziej prawdopodobną przyczyną zamknięcia Twojego pytania jest prośba o zalecenia dotyczące narzędzi, które w szczególności nie są odpowiednie dla języka SO. Zobacz https://meta.stackoverflow.com/questions/254393/what-exactly-is-a-recommendation-question –

+0

Naprawdę nadal czuję, że ts-minify jest odpowiedzią, której szukasz, czy próbowałeś i nie działa? – user378380