我在yeoman使用角发生器.在gruntfile.js中,/ app / views中的每个html文件都被复制到dist / views.但是我喜欢将指令模板与指令本身保持在同一个文件夹中.
例:
/app/scripts/widgets/mywidget.directive.js /app/scripts/widgets/mywidget.tmpl.html
当我构建项目时,我希望html文件结束与上述相同的文件夹结构.
这应该在gruntfile.js的复制部分完成.
copy: { dist: { files: [{ expand: true,dot: true,cwd: '<%= yeoman.app %>',dest: '<%= yeoman.dist %>',src: [ '*.{ico,png,txt}','*.html','images/{,*/}*.{webp}','styles/fonts/{,*/}*.*' ] }...
我试图在src数组中添加它:
'<%= yeoman.dist %>/scripts/{,*/}*.tmpl.html'
不工作.有任何想法吗?
解决方法
您可以将所有.tmpl.html从app / scripts / *移动到dist / scripts / *,使用下面的gruntfile代码修改.
files: [{ expand: true,src: [ '*.{ico,'views/{,*/}*.html' ] },{ // This block handles copying the .tmpl.html from app/scripts to dist/scripts expand: true,cwd: '<%= yeoman.app %>/scripts',dest: '<%= yeoman.dist %>/scripts',src: '{,*/}*.tmpl.html' } ...
您将要将新目录添加到usemin块中,以确保将filerev更新成为您的模板
usemin: { html: ['<%= yeoman.dist %>/{,*/}*.html','<%= yeoman.dist %>/scripts/{,*/}*.html'],...
您也可能希望将目录添加到htmlmin以将其缩小为html
htmlmin: { dist: { ... files: [ { expand: true,cwd: '<%= yeoman.dist %>',src: ['*.html','scripts/{,dest: '<%= yeoman.dist %>' } ] }
更新这些脚本现在反映了将任何.tmpl.html从app / scripts / * /移动到dist / scripts / * /.如果您的文件夹结构在脚本内部不止一层,请将{,* /} * .html转换为** / * .html