我发现grunt-usemin任务设置有点混乱。我正在使用grunt-usemin连接,uglify和rev我的文件。它适用于root 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文件中,文件引用都会更新为加速版本。
在我使用**.html
引用HTML文件时,我认为应该定位子目录中的所有html文件。我认为我在usemin或useminPrepare任务中有一些错误,是这种情况吗?
==编辑==
为了回应przno的回答,我将usemin:css:
更改为<%= yeoman.dist %>/assets/css/*.css
以使其正确编译CSS。
答案 0 :(得分:0)
在我用**.html
引用HTML文件时,我认为应该定位子目录中的所有html文件 - 使用**/*.html