use*_*486 11 javascript obfuscation angularjs
有像http://www.javascriptobfuscator.com/Default.aspx这样的javascript混淆器.他们处理简单的JavaScript代码.但他们会处理更复杂的前端AngularJS代码,它可能有几个控制器,服务,模块的文件?
StackOverflow上有经验的程序员使用什么工具来混淆他们的AngularJS代码?或者你完全没有,因为无法混淆前端代码?
Mat*_*est 19
您可以使用像Uglify或Closure Compiler这样的工具来缩小和混淆AngularJS代码,但由于Angular能够根据所用变量的名称注入依赖项(当您缩小或混淆代码时都会更改),因此它会变得棘手).
您需要使用定义模块,控制器等的数组形式.它在Angular教程的第5步中的"缩小注释"部分中进行了解释:https://docs.angularjs.org/tutorial/step_05
基本上,如果您当前正在使用依赖注入的简写方法,即:
myApp.controller('myController', function($scope, $http) { ... });
Run Code Online (Sandbox Code Playgroud)
您需要将其更改为更详细的基于数组的方法:
myApp.controller('myController', ['$scope', '$http', function($scope, $http) { ... }]);
Run Code Online (Sandbox Code Playgroud)
这样你就可以使用字符串告诉angular要使用字符串注入函数的对象,这些字符串在缩小过程中不会被更改,而不是依赖于$ scope和$ http变量本身的名称.
有一个名为ngmin的命令行工具,如果您不想修改代码库,它将自动为您进行这些更改:https://github.com/btford/ngmin
ngmin自述文件的"概念概述"部分也对此问题有了很好的解释.