组织javascript文件以实现更好的模糊处理

组织javascript文件以实现更好的模糊处理,javascript,global-variables,obfuscation,Javascript,Global Variables,Obfuscation,对于页面请求,我将首先加载utilities.js,然后加载module1.js和module2.js 现在,当我试图混淆这些文件时,登录模块的引用不会混淆,因为它是一个隐含的全局引用 我希望将模块文件分开存放在同一页面上,以提高可读性和维护性。js中的函数也将用于其他页面 如何更好地组织这些文件以改进混淆?将代码放入自执行匿名函数中: utilities.js: function log(message) { .... } module1.js YAHOO.util.Event.onDOMR

对于页面请求,我将首先加载utilities.js,然后加载module1.js和module2.js

现在,当我试图混淆这些文件时,登录模块的引用不会混淆,因为它是一个隐含的全局引用

我希望将模块文件分开存放在同一页面上,以提高可读性和维护性。js中的函数也将用于其他页面


如何更好地组织这些文件以改进混淆?

将代码放入自执行匿名函数中:

utilities.js:
function log(message)
{
....
}

module1.js
YAHOO.util.Event.onDOMReady(function()
{
  log("module1 is loaded");
});

module2.js
YAHOO.util.Event.onDOMReady(function()
{
  log("module2 is loaded");
});

因此,当您的代码混淆全局函数和变量时,它们仍将保留其原始名称。

我个人喜欢使用RequireJS:


这是一个加载模块的框架,您可以返回要使用的集合或对象,并将所有模块保留在各个作用域中。

他将搜索您的作用域变量并混淆它们。并且没有混淆全局变量。如果在作用域模糊器之外定义的函数日志不会触及它们,则不能这样做。如果你把日志放在一个不返回任何内容的匿名函数中,它将只存在于该函数的作用域中。这正是我不想要的,我希望混淆器解析日志函数,然后通过混淆它。
(function(){
    YAHOO.util.Event.onDOMReady(function() {
        log("module2 is loaded");
    });
})();