我有一组js文件,我在编译时连接成一个唯一的文件,然后在上面运行YUI压缩器(都是在maven下)。
不幸的是,文件的内容不是模糊的。这就好像所有声明的变量和方法都被认为是公共的(因此是不可混淆的)。
例如,a.js使用在b.js中声明的方法。拼接文件的内容为:
(function() {
// b.js' content...
// a.js' content...
(function() {
// Some var and methods of a declared here
$(document).ready(function(){
// Calls some a.js and b.js methods
...
});
})();
})();在b.js文件中,b.js的函数和变量定义如下:
var B1 = "Some text";
var B2 = "More text";
...
function MyPrivateMethod1() { ... };
function MyPrivateMethod2() { ... };a.js的方法是模糊的,但b.js的方法不是。我可以看到B1,B2,MyPrivateMethod1,MyPrivateMethod1...在连接的文件中,但我找不到a.js的变量和方法(名称已被混淆)。
如何在连接的文件中混淆b.js的var和方法?(REM:我需要将b.js保存为一个单独的文件)。
发布于 2011-12-01 22:31:00
我找到了一个解决方案,但我不确定这是不是最好的方案。我在一个函数中移动了b.js的代码:
var dummy = function() {
var B1 = "Some text";
var B2 = "More text";
...
var MyPrivateMethod1 = function() { ... };
var MyPrivateMethod1 = function() { ... };
...
function MyPublicMethod1() { ... };
function MyPublicMethod2() { ... };
...
}https://stackoverflow.com/questions/8341208
复制相似问题