我想学习 Require.js,我正在考虑在现有的 Django 项目中实现它。但是,我已经在使用资产管理器django-mediagenerator在我的项目中捆绑 JavaScript 文件和 CSS 文件。
由于我不完全确定 Require 到底是做什么的(我知道它会异步加载脚本,但仅此而已),我想知道在已经使用 django-mediagenerator 的项目中实现它是否完全没用。
有什么想法吗?
我想学习 Require.js,我正在考虑在现有的 Django 项目中实现它。但是,我已经在使用资产管理器django-mediagenerator在我的项目中捆绑 JavaScript 文件和 CSS 文件。
由于我不完全确定 Require 到底是做什么的(我知道它会异步加载脚本,但仅此而已),我想知道在已经使用 django-mediagenerator 的项目中实现它是否完全没用。
有什么想法吗?
总结:这不是一个或另一个:RequireJS 和 django-mediagenerator 解决了仅在某些方面重叠的不同问题。
RequireJS 的设计主要是为了模块化你的 JavaScript 代码,这样当你设计你的项目时,你可以使用分而治之的方法,而不是将所有东西都收集到一个文件中,或者花时间寻找模糊的错误,因为碰巧两个不相关的部分位于不同文件中的代码决定将它们的状态记录在一个名为state
. (几个小时的乐趣!)
django-mediagenerator 解决了将文件收集在一起以有效地为它们提供服务的问题。这是一个不同的问题。
现在,模块化项目有助于设计,但会损害生产性能。因此 RequireJS 包含一个优化器,它收集您的模块,并根据您的指示生成一个或多个优化的包。其中一些操作与 django-mediagenerator 所做的重叠,但我在 django-mediagenerator 的网站上没有看到任何迹象表明它可以理解设计用于与 RequireJS 一起使用的模块之间的依赖关系。另一方面,RequireJS 优化器了解这些依赖关系,并且需要了解它们才能完成其工作,因此您不能仅仅取消它。我的意思是,你不是被迫使用它,但如果你不这样做,你必须想出一些东西来复制 RequireJS 优化器中的一些智能。
在某些领域(如 CSS 优化),这两种工具都可以完成这项工作。如果你在同一个项目中同时使用两者,你必须决定如何划分职责。