为什么使用requireJS而不是有序包含列表?

时间:2014-02-14 11:14:21

标签: javascript web dependency-injection requirejs gruntjs

我一直在使用grunt文件将我的所有JS连接到一个文件中,然后发送到客户端。那么在使用require调用时我有什么优势?依赖关系是连接顺序所固有的,我不需要使用额外的代码和另一个第三方库来混淆我的所有JS。

此外,骨干模型(例如)在其定义中明确说明了它们的继承。更不用说如果他们的依赖关系不包括在内,他们根本就行不通。

另外,如果所有与依赖项相关的注释都在一个地方(grunt文件)以防止人为错误并且必须打开每个JS文件以了解其依赖性,那么维护是否会更容易?

修改

我的(有序)文件列表如下所示:

....
files: [
    "js/somelib.js",
    "js/somelib2.js",
    "js/somelib3.js",
    "js/models.js",
    "js/views.js",
    "js/controllers.js",
    "js/main.js"
], ...

因此,对于小项目来说,或许requireJS是不值得的。

2 个答案:

答案 0 :(得分:1)

使用require.js可以将应用程序的每个部分分解为可重用模块(AMD)并轻松管理这些依赖项。例如,在具有100个类的javascript应用程序中管理依赖项并不容易。

另外,如果你不想要所有的开销,请检查一下(由创建require.js的同一个人开发):https://github.com/jrburke/almond

答案 1 :(得分:0)

答案取决于您的应用程序的大小和最终用例..

  • 前端(客户端)的单个site.min.js有效负载通常用于小文件大小和简单的体系结构(从10个生成1个单个文件)。
  • 基于后端的(服务器)应用程序通常更大更复杂,因此可能需要使用其他工具来帮助管理大型代码库和依赖项(例如50个文件)。

通常,RequireJS是值得的,但前提是你有很多文件和依赖项。在客户端使用的替代方案是杏仁。同样,使用这样的工具必须保证需要(许多文件和依赖项)。

orourkedd的答案也值得一读。