2

我已经为 Django-Pipeline 编写了一个基本的 requirejs 编译器,我正在尝试对其进行改进,但我遇到了一个问题。我注意到 SASS 编译器存在同样的“问题”,所以我想知道这是我缺少的设置还是什么。

PIPELINE_CSS = {
    'main': {
        'source_filenames': (
            'sass/main.scss',
        ),
        'output_filename': 'css/crushcode.css',
        'extra_context': {
            'media': 'screen,projection',
        }
    }
}

PIPELINE_JS = {
    'requirejs': {
        'source_filenames': (
            'js/lib/requirejs-2.0.4.js',
        ),
        'output_filename': 'js/require.js',
        'extra_context': {
            'data': '/static/js/bootstrap'
        }
    }
}

这两个都在源目录中创建一个与输入文件同名的输出文件,扩展名更改为output_extension相应编译器类的扩展名。对于 SASS,这是可以的,因为扩展名是 .css,所以你最终会在 main.scss 旁边看到 main.css,但是在我第一次运行它时使用我的 requirejs 插件,因为扩展名是相同的,我实际上覆盖了我原始文件(当然没有丢失,谢谢版本控制)。

我注意到 infile 和 outfile 都指向:

APP_ROOT/static/js/lib/require-2.0.4.js

当我认为outfile应该指向output_filename设置时。

简单的解决方法是将output_extension我的自定义编译器类更改为“optimized.js”,但此时我为每个编译的文件添加了一个 .gitignore,更不用说 collectstatic 然后带来所有内容,并创建目标目录中所需的 output_filename 文件。

我所希望的是 collectstatic 会简单地在我的STATIC_ROOT目录中创建 js/require.js 文件。

感觉好像我在这里做错了什么,有什么提示吗?这是预期的行为吗?如果是这样,我应该如何改变它?

4

0 回答 0