Дублируйте "function(){}. Call(this)" в Uglified JS

Мой 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), так что, насколько я знаю, дело не в том, что их обрабатывает рельсы. Кто-нибудь знает, почему это происходит?

1 ответ

Решение

CoffeeScript упаковывает все файлы в функцию, которая вызывается немедленно. Это препятствует тому, чтобы объявления переменных из нескольких файлов мешали друг другу при объединении файлов (что и делает конвейер ресурсов Rails). Конечно, эти пустые функции могут быть удалены в процессе минимизации, но UglifyJS в настоящее время не может выполнить такую ​​оптимизацию.

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

Другие вопросы по тегам