使用 django-pipeline 在 collectstatic 之后自动删除源文件

Automatically remove source files after collectstatic with django-pipeline

使用 django-pipeline,是否可以在 collectstatic 之后自动删除源文件?

例如:

PIPELINE_JS = {
    'stats': {
        'source_filenames': (
          'js/jquery.js',
          'js/d3.js',
          'js/application.js',
        ),
        'output_filename': 'js/stats.js',
    }
}

收集静态数据:

$ python manage.py collectstatic
$ ls static/js
jquery.js
d3.js
application.js
stats.js

(我不要 jquery.js、d3.js、application.js)

Django-pipeline 在编译包时发送信号,您可以在 docs, and about signals in general here 中阅读更多相关信息。你可以像这样挂钩这个信号:

from pipeline.signals import js_compressed

def clear_files(sender, **kwargs):
    print kwargs
    if 'package' in kwargs:
        print kwargs['package'].sources
        # here remove unwanted files

js_compressed.connect(clear_files)