我在我的应用程序中使用ng-templates和usemin,我想把我的angular模板写进一个单独的文件中,所以我在我的.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构建块是空的,所以模板没有被写入文件。
任何关于如何使这项工作的建议将是很好的。
您调用任务的顺序是什么?我发现ngtemplate
的usemin
选项只有在 useminPrepare
任务之后调用才能工作,但是在任何usemin
生成的任务之前调用。例如,你的任务应该看起来像这样:
grunt.registerTask('build', [
//preliminary tasks...
'useminPrepare'
//unrelated tasks...
'ngtemplates'
//unrelated tasks...
'concat:generated'
//etc.
])
这样做会生成模板文件,但usemin
不会将其插入到最终的html中,除非块中至少有一个文件。我建议将包含模板模块声明的文件放在块引用中,如下所示:
<!-- build:js(.) scripts/templates.js -->
<script src="path/to/module/templates.module.js"/>
<!-- endbuild -->