如何使用grunt htmlmin插件缩小html?

时间:2015-08-21 02:14:47

标签: angularjs gruntjs yeoman-generator

我已经与yeoman生成了一个角度应用程序,现在尝试使用grunt + htmlmin缩小我的html文件。 htmlmin位看起来像这样:

  htmlmin: {
            dist: {
                options: {
                    collapseWhitespace: true,
                    conservativeCollapse: true,
                    collapseBooleanAttributes: true,
                    removeCommentsFromCDATA: true
                },
                files: [{
                    expand: true,
                    cwd: '<%= yeoman.dist %>',
                    src: ['*.html'],
                    dest: '<%= yeoman.dist %>'
                }]
            }
        },

当我运行此任务时,它会响应它已经缩小了2个文件,但我无法在dist文件夹中看到它们?根本没有创建视图文件夹?

2 个答案:

答案 0 :(得分:1)

我不使用自耕农,但我确实使用Gruntjs。

假设这不是一个yeoman配置问题,你可以做类似于我的事情。这是要点...

首先,我创建了一个不会丑化,缩小或其他任何内容的开发过程......这有助于加快我的开发过程。

然后,当我准备发布时,我会通过发布过程运行它,包括uglify,concats,minify,imagemin等...

你真的只需要从构建(输出)目录中缩小html ...并且由于你正在发布你也可能只是使用htmlmin版本覆盖build目录中的HTML文件(实际上没有任何意义)有这两个版本的发布)。

这是我的任务......对于这种情况,我们假设您的输出目录名为“_build”。这实际上是一项非常简单和干净的任务。希望这会有所帮助...

htmlmin: {
    site: {
        options: {
            removeComments: true,
            collapseWhitespace: true,
            removeEmptyAttributes: false,
            removeCommentsFromCDATA: false,
            removeRedundantAttributes: false,
            collapseBooleanAttributes: false
        },
        expand: true,
        src: './_build/**/*.html',
    }
}

你不能htmlmin尚未存在的东西。你必须首先构建输出目录然后在这些文件上运行htmlmin ...我认为你的src将更像以下......

files: [{
    expand: true,
    src: '<%= yeoman.dist %>/**/*.html'
}]

如果这对您有用,请将我的答案投票并将其标记为正确答案。

答案 1 :(得分:1)

使用Yeoman,在&#39; htmlmin&#34;中更改您的grunt文件。和&#34;复制&#34;部分。这将允许缩小,多个子目录缩小。

更改此行:

src: ['*.html', 'views/{,*/}*.html'],

到此:

src: ['*.html', 'views/**/*.html'],

*请务必在&#39; htmlmin&#34;中更改它并相应地在&#34; copy&#34;同一个grunt文件的一部分。