定义requirejs模块,包括文件夹中的所有文件

时间:2014-05-15 08:23:57

标签: javascript requirejs amd

我使用text的{​​{1}}插件来包含一些html模板,如下所示:

require.js

我真的没有必要保留对每个模板的引用(即使我现在正在这样做);我真的只需要将所有模板转储到我的define([ 'text!/assets/templates/home/myApp.templates.home.home-pane.html', 'text!/assets/templates/nav/myApp.templates.nav.top-navbar.html', 'text!/assets/templates/shared/myApp.templates.shared.layout.html', ... ], function (HomeTmpl, TopNavbarTmpl, SharedLayoutTmpl, RegisterVerticalTmpl, LoginVerticalTmpl, ThingListItemTmpl, ThingSearchTmpl, TestTestTmpl) { var allHtml = function () { return HomeTmpl + TopNavbarTmpl + SharedLayoutTmpl + RegisterVerticalTmpl + LoginVerticalTmpl + ThingListItemTmpl + ThingSearchTmpl + TestTestTmpl; } return { All: allHtml, HomeTmpl: HomeTmpl, TopNavbarTmpl: TopNavbarTmpl, ... } });

这种做事方式很麻烦,因为它要求我为每个新的模板html文件添加引用,而不是双关语。

我想做的是这样的事情:

head

有可能这样做吗?如果是这样,将所有包含的文件包含在一起作为一个大引用的语法是什么?

1 个答案:

答案 0 :(得分:5)

RequireJS不支持此功能,因为它(始终)无法从远程服务器获取目录列表。你想要的是像Grunt这样的构建工具。

例如,使用grunt-contrib-concat任务,您可以使用此配置将所有模板连接到单个文件(然后使用RequireJS包含该文件):

concat: {
    templates: {
      src: ['assets/templates/*'],
      dest: 'templates.html'
    }
}