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.html显示所有正确修改的文件名 - 对于 css、js concat 块和所有图像。但是,编译后的 CSS 文件不包含 revved 文件引用。也不是在所有子目录 index.html 文件中,文件引用都不会更新为 revved 版本。

在我引用 HTML 文件时,**.html我认为应该针对子目录中的所有 html 文件。我想我在 usemin 或 useminPrepare 任务中有一些错误,是这样吗?

== 编辑 ==

为了响应przno的回答,我改为usemin:css:让它<%= yeoman.dist %>/assets/css/*.css正确编译CSS。

4

1 回答 1

0

在我引用 HTML 文件时,**.html我认为应该针对子目录中的所有 html 文件- 使用**/*.html

于 2014-04-11T12:27:29.973 回答