Компрессор Django не ухудшает JavaScript - PullRequest
0 голосов
/ 06 июня 2019

Я хочу использовать Django Compressor , чтобы минимизировать и унизить мой CSS и JavaScript. У меня это работает так, что я делаю сжатие в автономном режиме и все необходимые javascript сжимаются правильно.

Проблема в том, что он не увеличивает код. Мои настройки:

STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
    "compressor.finders.CompressorFinder",
)
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
COMPRESS_YUGLIFY_BINARY = "yuglify"
COMPRESS_YUGLIFY_JS_ARGUMENTS = "--mangle"

yuglify на моем пути. Я попытался запустить его вручную для проверки файла, например: yuglify file.js --mangle. Оказывается, что yuglify (который является оберткой вокруг uglify-js ) не поддерживает es6 и выше.

Я нашел еще один глагол terser , который отлично работает с терминала с кодом es6. Поэтому я попытался заменить вышеуказанные настройки на terser, а именно:

COMPRESS_YUGLIFY_BINARY = "terser"
COMPRESS_YUGLIFY_JS_ARGUMENTS = "--mangle"

Это также не работает в django-compressor. В результате файлы уменьшаются, но не увеличиваются.

Буду признателен за любые предложения по работе с django-compressor или с альтернативным пакетом.

1 Ответ

1 голос
/ 06 июня 2019

Если вы посмотрите на документы, по умолчанию для COMPRESS_JS_FILTERS установлено значение

COMPRESS_JS_FILTERS = ['compressor.filters.jsmin.JSMinFilter']

Таким образом, вам нужно добавить фильтр 'compressor.filters.yuglify.YUglifyJSFilter'.

COMPRESS_JS_FILTERS = [
  'compressor.filters.jsmin.JSMinFilter',
  'compressor.filters.yuglify.YUglifyJSFilter',
]
...