【发布时间】:2012-09-04 20:48:00
【问题描述】:
我正在开发一个使用 Django 管道作为资产的 Django 项目,我一直遇到问题,我在一个 javascript 文件中定义了另一个文件所需的内容,但第二个文件在第一个文件之前加载,因此第二个文件无法正确加载。我可以弄乱包含在 PIPELINE_JS 中的顺序,但这很难处理。在大多数语言中,您可以执行require foo 之类的操作来确保 foo 已定义,但使用 javascript 和 django-pipeline 似乎是不可能的。我对 RequireJS 进行了一些研究,但我不确定是否可以将它与 django-pipeline 一起使用。在这种情况下我该怎么办?其他使用 django-pipeline 或 django 的人一般会为 javascript 依赖管理做什么?
作为旁注,我实际上使用的是 Coffeescript,而不是直接的 Javascript,但这似乎对事情没有任何帮助。在 Rails 中,我可以使用 #= require 'foo' 来要求另一个咖啡脚本文件,但这似乎与 rails 资产管道相关联。
【问题讨论】:
-
这两个文件是否在一个单独的组中?你能提供你的
PIPELINE_JS设置吗? -
大部分在同一组中。 PIPELINE_JS 本质上是一堆组,它们主要是通过使用 glob2.glob 对一些目录进行通配而形成的。例如,在某个目录中,我有依赖于 utils.coffee 的 content.coffee,到目前为止,我还没有找到一种方法来在 content.coffee 中指示应该在它之前加载 utils.coffee。对我来说,一个理想的解决方案不需要弄乱 PIPELINE_JS 中的字符串顺序,因为如果我以后添加另一个依赖于 utils.coffee 的文件,我将不得不再次深入研究该文件。
-
你好@cyberdelia!感谢您回答我的问题!当图书馆的作者在 Stackoverflow 上回答您的问题时,令人兴奋:)
标签: javascript django coffeescript requirejs