3

在我们的require.js 和backbone.js 应用程序中,我们使用了许多视图和模板。

在构建步骤中,我们希望将模板与适当的视图 shim 内联,并在过程中从构建中删除文本插件。

这甚至可能吗?

4

1 回答 1

0

当您运行他们的 r.js 实用程序时,RrequireJs 会自动处理这些问题。“内联”模板不需要额外的努力。

只要您的模板是这样定义的:

define ( ['text!templates/my.html'], function(myTemplate){})

运行 r.js -o app.build.js 会将您的所有内容内联text!templates/my.html到优化的 javascript 文件中的自己的字符串中。这是我的 app.build.js 的示例

 ({
    appDir: "../project-directory",
    baseUrl: ".",
    dir: "../../optimized",
    modules: [
        {
            name: "js/bootstrap"
        }
    ],
    paths: {
        text: 'js/libs/amd/plugins/text',
        order: 'js/libs/amd/plugins/order',
        jquery: 'js/libs/jquery-1.7.1',
        underscore: 'js/libs/underscore',
        backbone: 'js/libs/backbone',
        'jquery.mobile.router': 'js/libs/jquery.mobile.router'
    },
    optimize: 'uglify',
    optimizeCss: "standard"
})

RequireJS 足够聪明,可以内联前缀为text!. 换句话说,文本插件仅在您的开发版本中使用。优化版本不需要文本插件。

如果您对更多细节感兴趣,您可以在 RequireJS 的网站上找到优化项目的说明。您还可以在此处找到包含所有可能选项的构建文件的详细示例

于 2012-05-03T18:02:58.020 回答