grunt-compile-handlebars:为什么我的把手模板和数据不能使用以下命令位于不同的目录中

时间:2018-07-18 20:22:25

标签: gruntjs handlebars.js glob gruntfile

大家好吗!我正在使用grunt-compile-handlebars建立一个静态的html网站,并且遇到与我要构建目录的方式有关的问题。

要提供一些上下文,请使用以下目录结构和Gruntfile正常运行

目录

package.json
dist/
Gruntfile.js
src/
  partials/
    partial.handlebars
  views/
    thing1.handlebars
    thing1.json
    thing2.handlebars
    thing2.json

Gruntfile

module.exports = function(grunt) {

  grunt.initConfig({
    jshint: {
      files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
      options: {
        globals: {
          jQuery: true
        }
      }
    },
    watch: {
      files: ['./src/*', './static/*'],
      tasks: ['compile-handlebars']
    },
    'compile-handlebars': {
      compileRootTemplates: {
        files: [{
            expand: true,
            cwd: './src/views/',
            src: '*.handlebars',
            dest: './dist/',
            ext: '.html'
        }],
        templateData: './src/views/*.json',
        partials: './src/partials/*.handlebars'
      },
  });

  grunt.loadNpmTasks('grunt-compile-handlebars');
  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('default', ['compile-handlebars']);

};

但是,我理想的情况是删除/views目录,并在其位置上为/templates文件创建一个.handlebars文件夹,并为其中一个创建一个/data文件夹.json个文件。但是,当我这样做时,然后还要对我的Gruntfile进行以下调整:

...
'compile-handlebars': {
      compileRootTemplates: {
        files: [{
            expand: true,
            cwd: './src/templates/',
            src: '*.handlebars',
            dest: './dist/',
            ext: '.html'
        }],
        templateData: './src/data/*.json',
        partials: './src/partials/*.handlebars'
      },
  });
...

编译器成功提取了分部,但无法使用数据更新任何车把表达式,而留空白。例如。 .handlebars文件中的/styles/{{stylesheet}}.css在已编译的html中变成/styles/.css

关于为什么这样不起作用的任何想法?查看README中的grunt-compile-handlebars似乎建议这样做,尤其是因为作者在示例Gruntfile中使用了/**/*.handlebars之类的/**/*.json之类的glob。任何帮助表示感谢,谢谢!

0 个答案:

没有答案