Django 压缩器不丑化 javascript
Django compressor does not uglify javascript
我希望使用 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
代码完美运行。因此,我尝试将上述设置替换为更简洁的设置,即:
COMPRESS_YUGLIFY_BINARY = "terser"
COMPRESS_YUGLIFY_JS_ARGUMENTS = "--mangle"
这在 django-compressor
中也不起作用。结果是文件变小了,但没有变丑。
我将不胜感激关于使用 django-compressor
或替代包进行此操作的任何建议。
如果您查看文档,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',
]
我希望使用 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
代码完美运行。因此,我尝试将上述设置替换为更简洁的设置,即:
COMPRESS_YUGLIFY_BINARY = "terser"
COMPRESS_YUGLIFY_JS_ARGUMENTS = "--mangle"
这在 django-compressor
中也不起作用。结果是文件变小了,但没有变丑。
我将不胜感激关于使用 django-compressor
或替代包进行此操作的任何建议。
如果您查看文档,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',
]