3

我正在开发一个使用 Django 管道作为资产的 Django 项目,并且我一直遇到问题,我在一个 javascript 文件中定义了另一个文件所需的内容,但是第二个文件在第一个文件之前加载,因此是第二个文件无法正确加载。我可以弄乱包含在 PIPELINE_JS 中的顺序,但这很难处理。在大多数语言中,您可以执行诸如require foo确保已定义 foo 之类的操作,但使用 javascript 和 django-pipeline 似乎是不可能的。我对 RequireJS 进行了一些研究,但我不确定是否可以将它与 django-pipeline 一起使用。在这种情况下我该怎么办?通常使用 django-pipeline 或 django 的其他人对 javascript 依赖项管理做了什么?

作为旁注,我实际上使用的是 Coffeescript,而不是直接的 Javascript,但这似乎对事情没有任何帮助。在rails中,我可以#= require 'foo'要求另一个coffeescript文件,但这似乎与rails资产管道相关联。

4

1 回答 1

1

做到这一点的唯一方法是相应地对'source_filenames'列表进行排序,还请记住,这些文件将在运行时按此顺序连接collectstatic

管道将遵守此顺序,它还将避免重复,以便您在执行此操作时安全:

'base.coffee',
'*.coffee', 

目前在 django-pipeline 中没有“require”语法。希望这可以帮助。

于 2012-09-04T12:48:00.490 回答