0

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.htmlcss、js concat ブロック、およびすべての画像について、正しく改訂されたすべてのファイル名が表示されます。ただし、コンパイルされた CSS ファイルには、改訂されたファイル参照が含まれていません。また、すべてのサブディレクトリの index.html ファイルで、ファイル参照が更新されたバージョンに更新されることもありません。

HTML ファイルを参照すると**.html、サブディレクトリ内のすべての html ファイルをターゲットにする必要があると考えました。usemin または useminPrepare タスクに間違いがあると思いますが、これは事実ですか?

==編集==

przno の回答に応じて、CSS を正しくコンパイルするように変更usemin:css:しました。<%= yeoman.dist %>/assets/css/*.css

4

1 に答える 1

0

私がHTMLファイルを参照すると**.html、サブディレクトリ内のすべてのhtmlファイルをターゲットにする必要があると思いました-使用**/*.html

于 2014-04-11T12:27:29.973 に答える