2014-05-03 18 views
11

http://www.javascriptobfuscator.com/Default.aspx gibi çevresinde javascript obfusatörleri var. Basit javascript kodu üzerinde çalışırlar. Ancak, kontrolörler, servisler, modüller için birkaç dosyaya sahip olabilecek daha karmaşık ön uç AngularJS kodu üzerinde çalışacaklar mı?javascript obfuscators AngularJS için çalışıyor mu?

StackOverflow'taki deneyimli programcılar AngularJS kodlarını gizlemek için hangi araçları kullanır? Ya da hiç yapmadığınız için ön uç kodunu gizlemek imkansızdır?

+0

İstemcinizi daha kısa indirmek için kodunuzu küçültün. Dikkat çekilmesi ve küçültülmesinden, işe yaraması zorlaştırmak için yeteri kadar kodlayan hiçbir fayda yoktur. – Blender

+0

@Oriol: patron kodun rekabetten korunmasını istiyor. – user781486

+0

@Blender: Ama ilk etapta mümkün mü? – user781486

cevap

18

AngularJS kodunu küçültmek ve gizlemek için Uglify veya Closure Compiler gibi araçları kullanabilirsiniz, ancak Angular'ın bağımlı değişkeni kullanılan değişkenin adını temel alarak kullanma yeteneğinden dolayı zor olabilir (tüm bunlar küçültüldüğünde değiştirilir) veya kodu gizleyin).

Sen Açısal öğretici 5. adımında bölümünde "küçültme üzerine Notlar" in O anlatılmış vb modülleri, kontrolörler, tanımlama dizisi formunu kullanmanız gerekir: https://docs.angularjs.org/tutorial/step_05

Temelde, eğer' Şu anda, yani bağımlılık enjeksiyon stenografi yöntemi kullanılarak re:

daha ayrıntılı dizisi temelli yönteme değiştirmek gerekir
myApp.controller('myController', function($scope, $http) { ... }); 

:

myApp.controller('myController', ['$scope', '$http', function($scope, $http) { ... }]); 

Bu şekilde, $ scope ve $ http değişkenlerinin isimlerine güvenmek yerine, minification sırasında değiştirilmeyecek dizeleri kullanarak hangi nesnelerin nesneye enjekte edildiğini açısal olarak anlatırsınız. https://github.com/btford/ngmin

ngmin readme 'Kavramsal Genel Bakış' bölümünde de iyi vardır:

Eğer kod tabanına değiştirmek istemiyorsanız sizin için bu değişiklikleri yapmak otomatik olacağı ngmin adında bir komut satırı aracı yoktur Bu problemin açıklaması.

+0

güzel bir çözüm yaar.Thanx çok .. –

+4

@MattGuest 'uglify' veya 'Closure Compiler', AngularJS Kodunu veya diğerlerini gizlemez, yalnızca küçültme yaparlar. – RicardoGonzales

+0

Bize yetecek kadar engelsiz (hiç bir şeyden daha iyi belli değil; tersine mühendis için tersine bir zaman alacaktı). – Mawg