gpt4 book ai didi

Javascript 条件包含预缩小 : does such a tool exist?

转载 作者:行者123 更新时间:2023-11-30 18:43:08 25 4
gpt4 key购买 nike

我能找到的所有 JS 压缩器都是通过空格消除、变量重命名和常规压缩的组合工作的。但是,如果压缩器知道正在压缩的项目需要模块中的哪些功能,则可以减少更多内容。

假设一个项目使用 underscore.js , 但仅使用导出函数 _.isEmpty_.isArray。看着the source ,压缩器可以只包含 _.isEmpty_.isArray_.isString_.hasOwnProperty .

这样做可能需要标记模块源以说明什么是什么并表达模块内依赖性,例如:

//{{ "_.isEmpty" depends "_.isArray", "_.isString", "_.hasOwnProperty"
_.isEmpty = function(obj) {
if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
for (var key in obj) if (hasOwnProperty.call(obj, key)) return false;
return true;
};
//}}

然后可以运行 minify underscore.js ["_.isEmpty", "_.isArray"] 来删除不需要的所有内容。或者,您可以在代码中包含相同的标签来表达 underscore.js 的那些必需部分,然后将您的代码与下划线捆绑在一起并有条件地编译结果。在这两种情况下,您都可以在最后运行标准缩小器。

正如所描述的,这甚至不是特定于 JS 的,所以某些东西必须存在于某处。一个更聪明的条件包含器或许可以分析代码以检测依赖关系,但这是一个难题。


我正在寻找一个 JS“缩小器”,它可以在依赖项注释的帮助下削减死代码。有这种东西吗?

最佳答案

谷歌的 Closure Compiler的“高级编译”功能做你想做的事——它解析你的 JavaScript 源代码并自动删除它的死代码 (try it online)。缺点是你may have to make changes to your code不过,让它起作用。

关于Javascript 条件包含预缩小 : does such a tool exist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com