grunt-angular-templates将模板写入单独的文件中

时间:2015-10-13 13:47:41

标签: javascript templates build gruntjs grunt-usemin

我在我的应用中使用ng-templates和usemin,我想将我的角度模板写入一个单独的文件中,所以我在.html文件中创建了一个usemin块引用,就像这样:

<!-- build:js(.) scripts/templates.js -->
<!-- endbuild -->

我使用以下选项配置了ngTemplates任务:

ngtemplates: {
  dist: {
    cwd: '<%= yeoman.app %>',
    src: ['**/*.html'],
    dest: '.tmp/templateCache.js',
    options: {
      module: 'myTemplateModule',
      htmlmin: '<%= htmlmin.dist.options %>',
      usemin: 'scripts/templates.js'
    },
  }
}

但我只是发现没有创建scripts/templates.js文件,可能是因为html构建块是空的,因此模板不会被写入文件。

关于如何完成这项工作的任何建议都会很好。

1 个答案:

答案 0 :(得分:1)

你以什么顺序调用任务?我发现usemin的{​​{1}}选项只有在 ngtemplate任务后调用它时才有效,但之前 已调用任何useminPrepare生成的任务。即你的任务应该是这样的:

usemin

这样做会导致生成模板文件,但grunt.registerTask('build', [ //preliminary tasks... 'useminPrepare' //unrelated tasks... 'ngtemplates' //unrelated tasks... 'concat:generated' //etc. ]) 不会将其插入到最终的html中,除非块中至少有一个文件。我建议将包含模板模块声明的文件放在块引用中,如下所示:

usemin