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 ファイルには、改訂されたファイル参照が含まれていません。また、すべてのサブディレクトリの index.html ファイルで、ファイル参照が更新されたバージョンに更新されることもありません。
HTML ファイルを参照すると**.html
、サブディレクトリ内のすべての html ファイルをターゲットにする必要があると考えました。usemin または useminPrepare タスクに間違いがあると思いますが、これは事実ですか?
==編集==
przno の回答に応じて、CSS を正しくコンパイルするように変更usemin:css:
しました。<%= yeoman.dist %>/assets/css/*.css