我的应用程序中包含所有mootools更多模块,但我想删除我没有使用的模块。是否有一种快速的方法可以从脚本开始根据mootools更多地了解我使用的模块?
答案 0 :(得分:3)
要捕获已实例化的类,请构建一个列表并使用类似的东西:
Object.monitor = function(obj, match){
var keys = (function(obj){
// include from prototype also, any function.
var keys = [], key;
for (key in obj) typeof obj[key] === 'function' && keys.push(key);
return keys;
}(obj)),
log = function(what, method){
// more use goes red in console.
console.log(obj, method, what);
},
counters = {};
keys.forEach(function(key){
var orig = obj[key];
Object.defineProperty(obj, key, {
get: function(){
key in counters || (counters[key] = 0);
counters[key]++;
key.test(match) && log(counters[key], key);
return orig;
}
});
});
};
var protos = [Fx.Reveal, Fx.Slide, Request.JSONP]; // etc etc - stuff you are unsure of.
protos.forEach(function(klass){
Object.monitor(klass.prototype, /\$constructor/);
});
new Request.JSONP({});
只要这些项目中的任何一个被实例化或扩展,构造函数就会被引用,您将获得日志以显示它。 http://jsfiddle.net/dimitar/8nCe6/ - 这将实例化Request.JSONP()
。
我编写了Object.monitor
来监视在特定实例上调用的方法,但同样的原则适用。控制台格式化仅在FireBug和WebInspector中运行良好 - 本机FF控制台需要变得简单。
http://fragged.org/spy-on-any-method-on-an-object-and-profile-number-of-times-called_1661.html
你可以用它来监视说,Array.prototype
或任何类似的东西 - 但难点是代码复杂性更多。很难确定下来:(
答案 1 :(得分:0)
你压缩文件了吗?
如果您尚未从构建中删除原始注释,则文件顶部应该有一个链接,其中包含所包含的包和链接的列表。例如
// Load this file's selection again by visiting: http://mootools.net/more/065f2f092ece4e3b32bb5214464cf926
如果您没有链接,但包含其他注释,请在文件中搜索script:
,然后您应该获得所有包含的列表。