【问题标题】:Duplicate "function(){}.call(this)" in Uglified JSUglified JS中的重复“function(){}.call(this)”
【发布时间】:2015-02-27 22:49:21
【问题描述】:

我的 uglified(使用 rails uglifier)javascript 结束如下:

/* ... actual code */}.call(this),function(){}.call(this),function(){}.call(this),function(){}.call(this),function(){}.call(this),function(){}.call(this);

或者对于人类:

}.call(this),
function(){}.call(this),
function(){}.call(this),
function(){}.call(this),
function(){}.call(this),
function(){}.call(this);

Uglifier 应该减少最终产品中的字节数。据我所知,我有一些空的咖啡文件(但超过 6 个),这并不是因为 rails 正在处理它们。有人知道为什么会这样吗?

【问题讨论】:

  • 单独的代码什么都不做。好吧,它可能会在第 1 行抛出异常 - 我想这是 something...
  • 不,抱歉,我刚刚排除了之前的内容。我知道从第 2 行开始,它什么也没做,但有点奇怪。
  • 你的js文件夹里有空文件吗?也许一些 .gitkeep 文件?
  • 这是唯一的输出吗?您的输入和配置文件是什么样的?
  • @AustinMullins:空文件,我没想到 - 我会检查一下(不过你会认为 uglifier 会更聪明)。

标签: javascript uglifyjs uglifier


【解决方案1】:

CoffeeScript 将所有文件包装到调用的函数中 立即地。这可以防止来自多个文件的变量声明 当文件连接时相互干扰 (这就是 Rails 资产管道正在做的事情)。当然,那些空的 函数可以在缩小过程中删除,但 UglifyJS 不是 目前能够执行此类优化。

https://github.com/lautis/uglifier/issues/82

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 2012-07-20
    • 1970-01-01
    • 2022-12-01
    • 2014-07-29
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多