我发现 grunt-usemin 任务的设置有点令人困惑。我正在使用 grunt-usemin 来连接、丑化和修改我的文件。它适用于根 index.html 文件,但是,其他目录中的文件不会被 revved 文件引用替换。
我有以下文件结构:
app
index.html
subfolderA
--index.html
subfolderB
--index.html
assets
--img
--js
----script.js
--scss
----style.scss
在构建时,所有内容都被构建到/dist
目录中。
我的 Gruntfile 包含(以及其他任务)以下内容:
useminPrepare: {
options: {
dest: '<%= yeoman.dist %>'
},
html: '<%= yeoman.dist %>/**.html',
css: '<%= yeoman.app %>/assets/scss/**.scss'
}
usemin: {
options: {
dirs: ['<%= yeoman.dist %>']
},
html: '<%= yeoman.dist %>/**.html',
css: '<%= yeoman.app %>/assets/css/style.css'
}
grunt.registerTask('build', [
'clean:dist',
'jekyll:dist',
'spriteHD',
'compassMultiple:dist',
'useminPrepare',
'concat',
'uglify',
'rev',
'copy:dist',
'svgmin',
'imagemin:dist',
'svg2png',
'modernizr',
'concurrent:replacementsDist',
'usemin'
]);
HTML 文件中要替换的块如下所示:
<!-- build:js /assets/js/lteie8.main.js -->
<script src="//ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js"></script>
<script src="/assets/bower_components/selectivizr/selectivizr.js"></script>
<script src="/assets/bower_components/respond/dest/respond.src.js"></script>
<!-- endbuild -->
构建后,dist/index.html
显示所有正确修改的文件名 - 对于 css、js concat 块和所有图像。但是,编译后的 CSS 文件不包含 revved 文件引用。也不是在所有子目录 index.html 文件中,文件引用都不会更新为 revved 版本。
在我引用 HTML 文件时,**.html
我认为应该针对子目录中的所有 html 文件。我想我在 usemin 或 useminPrepare 任务中有一些错误,是这样吗?
== 编辑 ==
为了响应przno的回答,我改为usemin:css:
让它<%= yeoman.dist %>/assets/css/*.css
正确编译CSS。