Grunt/Assemble — минификация вывода html

Я использую Grunt и сборку для создания своих HTML-страниц для статического сайта, и я хочу минимизировать свой HTML.

Поэтому я бы предположил, что плагин Assemble, который запускает шаблоны руля для набора данных, будет иметь опцию минимизации.

В документации Assemble об этом не упоминается; http://assemble.io/docs/Options.html#configuration-options

Но есть упоминание в документах handlebars-helper-minify; https://www.npmjs.org/package/handlebars-helper-minify#-assemble-task-options — но это не имеет никакого эффекта.

Я не могу найти ничего другого в Интернете, конечно, это более распространенный запрос...

grunt.initConfig({
    assemble: {
                options: {
                    assets: '../source',
                    data: ['package.json','data/*.{json,yml}'],
                    partials: 'templates/modules/*.hbs',
                    ext: '.html',
                    helpers: 'templates/helpers/*.js',
                    layout: 'templates/layout/master.hbs',
                    removeHbsWhitespace: true,
                    minify: {
                        removeAttributeQuotes: true,
                        collapseWhitespace: true
                    }
                },
                dev: {
                    options: {
                        production: false
                    },
                    files: [{
                        expand: true,
                        cwd: 'templates/pages',
                        src: ['*.hbs'],
                        dest: '../source'
                    }]
                }
    }
});

person Will Hancock    schedule 18.02.2014    source источник


Ответы (2)


Вам необходимо явно зарегистрировать хелпер {{minify}} в Gruntfile

helpers: ['handlebars-helper-minify', 'templates/helpers/*.js']

В качестве альтернативы попробуйте добавить модуль handlebars-helper-minify к модулям devDependencies и keywords в файле package.json вашего проекта.

{
  "devDependencies": {
    "handlebars-helper-minify": "~0.1.1"
  },
  "keywords": [
    "handlebars-helper-minify"
  ]
}

В макете master.hbs оберните его {{minify}}, например:

{{#minify}}
  {{> header }}
  {{> body }}
  {{> footer }}
{{/minify}}
person Hariadi    schedule 18.02.2014

посмотрите grunt-prettify одного из авторов Assemble. пример его использования помимо README проекта — здесь Грунтфайл:

/**
 * Beautify generated HTML to make diffs easier
 */
prettify: {
    tests: {
        options: {ocd: true},
        files: [
            {expand: true, cwd: 'test/actual', src: ['**/*.html'], dest: 'test/actual/', ext: '.html'}
        ]
    }
},

удачи

person waynedpj    schedule 18.02.2014