Ven*_*soh 6 gruntjs yeoman grunt-usemin
背景
我正在使用Yeoman webapp来支撑我的前端.在gruntfile中,他们使用grunt-rev和grunt-usemin
Grunt-rev将"重新启动"我的资产,grunt-usemin将更新资产路径.
问题
我有一个我正在使用的webfont.我将fonts文件夹放在我的样式目录中,如gruntfile.js('styles/fonts /{,/}.*')中所述.Grunt服务正在显示我的字体,但在我构建文件后,它不再有效,因为font filename以一些奇怪的乱码字符作为前缀.例如:63b122ab.fontname.ttf而不是fontname.ttf
这是用于缓存清除.但是我的.css文件没有更新拾取它的路径.
在我的gruntfile.js中的usemin块中
我该怎么办?我现在有这个,但它不起作用.
usemin: {
options: {
assetsDirs: ['<%= config.dist %>', '<%= config.dist %>/images', '<%= config.dist %>/styles/fonts']
},
html: ['<%= config.dist %>/{,/}.html'],
css: ['<%= config.dist %>/styles/{,/}.css']
},
Run Code Online (Sandbox Code Playgroud)
它正在拾取其他所有内容,但不是字体.我手动创建了fonts文件夹.所以我猜测必须更新gruntfile.js以反映更改.
小智 0
我在 css 文件中遇到了同样的问题。我在 Gruntfile.js 中更改了 usemin 配置,如下所示:
usemin: {
html: ['<%= yeoman.dist %>/<%= yeoman.client %>/{,!(bower_components)/**/}*.html'],
css: ['<%= yeoman.dist %>/<%= yeoman.client %>/!(bower_components){,*/}*.css'],
js: ['<%= yeoman.dist %>/<%= yeoman.client %>/!(bower_components){,*/}*.js'],
options: {
assetsDirs: [
'<%= yeoman.dist %>/<%= yeoman.client %>',
'<%= yeoman.dist %>/<%= yeoman.client %>/assets/images'
],
// This is so we update image and font references in our ng-templates
patterns: {
js: [
[/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images']
],
css: [
[/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the CSS to reference our revved images'],
[/(assets\/fonts\/.*?\.(?:woff|ttf|svg|eot))/gm, 'Update the CSS to reference our revved fonts']
]
}
}
}
Run Code Online (Sandbox Code Playgroud)