Да, безопасно разделять модули вверх, начиная с Fay 0.16, все модули могут существовать автономно (до этого вы все равно можете разделить время исполнения и фаи-базы). Для этого есть несколько флагов, --print-runtime
и --no-stdlib
. Компиляция с оптимизацией (-O
, это увеличивает выходной размер, но закрытие будет в состоянии свести его еще лучше).
Также помните, что веб-сервер должен gzip это. Это приносит размер кода до 4.5kiB. Это довольно прилично, не так ли?
Возможно, вы захотите рассмотреть возможность размещения всего вашего javascript в одном файле, что означает более медленную начальную загрузку, но затем пользователи будут кэшироваться для будущих загрузок страниц.
Причина, по которой размер файла настолько велик, что fay-jquery имеет множество привязок FFI, которые производят много информации о перекодировке. Я думаю, что fay-jquery можно было бы оптимизировать здесь, чтобы, например, использовать Ptr JQuery
, а не только JQuery
в типах, или выяснив, что во время компиляции это не нужно, или абстрагирование конверсий больше в выводе компилятора.
Еще одна возможная проблема, которую я понял пару дней назад, заключается в том, что вывод теперь находится в глобальной области действия, а не в закрытии, что может означать, что закрытие google не может удалить избыточный код, а также ранее (не успел исследовать это еще). Возможно, необходимо сформировать модули для создания замыкания для каждого модуля.
См. Также Reducing output size на wiki.
Я знаю, что могу редактировать файлы js вручную и разделить их и загрузить их отдельно. Возможно, мой вопрос был неясен. Я спрашиваю, как предотвратить fay генерирование всего этого кода, как только я сохранил его в отдельный файл? Я попробовал все упомянутые вами флаги. И в файле результатов по-прежнему много материала. Я хочу, чтобы он генерировал только код самого модуля, не включая какие-либо из stdlib и jquery. –