像http://www.javascriptobfuscator.com/Default.aspx一样有javascript混淆器。他们使用简单的JavaScript代码。但是他们是否会在更复杂的前端AngularJS代码上工作,这些代码可能包含控制器,服务和模块的几个文件?JavaScript混淆器是否适用于AngularJS?
StackOverflow上有经验的程序员使用什么工具来混淆他们的AngularJS代码?或者你根本就不知道,因为不可能混淆前端代码?
像http://www.javascriptobfuscator.com/Default.aspx一样有javascript混淆器。他们使用简单的JavaScript代码。但是他们是否会在更复杂的前端AngularJS代码上工作,这些代码可能包含控制器,服务和模块的几个文件?JavaScript混淆器是否适用于AngularJS?
StackOverflow上有经验的程序员使用什么工具来混淆他们的AngularJS代码?或者你根本就不知道,因为不可能混淆前端代码?
您可以使用像Uglify或Closure Compiler这样的工具来缩小和混淆AngularJS代码,但由于Angular能够根据所使用的变量的名称注入依赖项,所以它可能会变得棘手(当您缩小时将全部改变或者混淆代码)。
您需要使用您的定义模块,控制器等,它解释了部分“上微小的注意事项”中的角教程的步骤5的阵列形式:https://docs.angularjs.org/tutorial/step_05
基本上,如果你”重新目前使用依赖注入的速记方法,即:
myApp.controller('myController', function($scope, $http) { ... });
您需要将其更改为更详细的基于阵列的方法:
myApp.controller('myController', ['$scope', '$http', function($scope, $http) { ... }]);
通过这种方式,您可以告诉角度什么对象使用字符串注入到函数中,在缩小期间不会更改,而不是依赖$ scope和$ http变量本身的名称。
有一个叫ngmin是一个命令行工具,如果你不想修改你的代码将自动为您做出以下更改:https://github.com/btford/ngmin
的ngmin自述的“概念概述”部分也有不错的这个问题的解释。
一个很好的解决方案yaar.Thanx很多.. –
@MattGuest“丑化”或“关闭编译”不要混淆AngularJS代码或任何其他他们只做微小。 – RicardoGonzales
这对我们来说足够令人迷惑(确定比没有更好;它需要一个确定的人时间来反向工程)。 – Mawg
只需简化代码即可缩短客户端的下载时间。混淆和缩小都没有任何好处,足以使代码变得难以处理。 – Blender
@Oriol:因为老板想要保护代码免受竞争。 – user781486
@Blender:但首先可能吗? – user781486