如何通过网络包加载车把模板数组?

时间:2017-02-15 05:49:41

标签: javascript webpack handlebars.js

有没有办法使用Webpack编译模板目录并存储在数组对象中?

说明:我现在正在使用把手模板列表。我使用handlebars compiler中的gulp预编译了模板列表。

gulp.src('client/src/templates/**/*.hbs')
  .pipe(gulp_handlebars({
      handlebars: handlebars,
       compilerOptions:{
        knownHelpers: helpers,
        knownHelpersOnly:true}
      }))
      .pipe(wrap('Handlebars.template(<%= contents %>)'))
      .pipe(declare({
        namespace: 'appname.templates',
        noRedeclare: true, 
        processName: function(filePath) {
          return declare.processNameByPath(filePath.replace('client/src/templates/', ''));
        }
      }));

然后我会通过appname.templates数组访问模板。它工作正常。

现在,我正在转向Webpack。如果我使用handlebars-loader, 它允许我按名称要求每个模板,如

var template = require("./file.handlebars");

有没有办法让一个目录中的所有模板都像

这样的数组
var templates = require("./*.handlebars");

1 个答案:

答案 0 :(得分:1)

我通常会转到您拥有模板的文件夹,并拥有_providerManager.ProviderMap文件,例如:

templates/index.js

然后你可以这样做:

export templateA from './templateA.handlebars'
export templateB from './templateB.handlebars'
export templateC from './templateC.handlebars'
...

import * as templates from './templates' 是一个包含所有模板的对象。您也可以templates按名称访问它们。