使用构建脚本连接requirejs模块

时间:2013-10-25 14:44:25

标签: javascript requirejs r.js

我正在尝试将需要的模块缩小并连接到一个文件中。

例如,如果我有一个名为article.js的文件,如下所示:

define(["jquery","flexslider","share_div"],function(){});

我希望将所有这些依赖项合并并缩小为一个文件。

我的构建脚本中有以下内容,但它不是将文件组合在一起,只是缩小。

这是我的build.js文件:

{
    "appDir": "../js",
    "baseUrl": "../js",
    "dir": "../www-build",
    "mainConfigFile": "../js/common.js",

    "modules": [
        {
            "name": "common"
        },
        {
            "name": "page/article",
            "exclude": ["common"]
        }
    ],
    "paths": {
        "jquery": "empty:",
        "jquery_ui": "empty:",
        "twitter_bootstrap": "empty:"
    }
}

我对Require和构建脚本的理解可能是错误的,但我设想文件会连接在一起。

任何指导都将不胜感激。

2 个答案:

答案 0 :(得分:0)

要缩小作为依赖项跟踪的各个模块的嵌套依赖项,请将此additonal属性指定为构建文件的一部分:findNestedDependencies: true。 (见full RequireJS doc的第318-324行。)

如果articles.js是common.js中的依赖项,并且您正在遍历common.js以构建连接和minfied文件。如果您只是尝试构建单个模块本身,我不确定缺少连接。

答案 1 :(得分:0)

你在评论中包含的build.txt文件(我写的评论在我写完答案之后被Andy删除了)有点难读,因为它没有被包含在预先格式化中码。从我在您提供的文件中看到的内容,r.js确实将article.js的依赖关系连接到一个文件中。所以看来你已经以某种方式解决了原来的问题。

为什么你的输出没有出现在正确的目录中,我只能推测。您在问题中显示的build.js文件已设置为将所有内容放入../www-build,但您的build.txt文件会将输出显示在../js中。以下是推测部分:有时当我们正在寻找解决方案时,我们会在这里和那里做出改变,并且不知道我们在哪里。这当然发生在我身上。我所做的就是清理我的开发树(删除构建版本),检查我的构建配置,以确保我确实使用了我认为使用的内容并重新运行构建。