3

我希望使用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的 uglifier ,它可以在终端上通过es6代码完美运行。因此,我尝试用更简洁的方式替换上述设置,即:

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

这在django-compressor. 结果是文件被缩小但没有被丑化。

我将不胜感激有关使用django-compressor或使用替代软件包的任何建议。

4

1 回答 1

4

如果您查看文档,则 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',
]
于 2019-06-06T15:33:20.997 回答