首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅呈现我使用Assemble更改过的页面

仅呈现我使用Assemble更改过的页面
EN

Stack Overflow用户
提问于 2014-10-23 00:21:28
回答 1查看 365关注 0票数 2

我一直在使用assemble创建模式库。我有一个模式作为不同的文件,所有这些文件都被构建到一个文件中。我也有一些网页,是HTML的模板。

问题是,如果我在任何文件上更改一项内容,我必须等待整个文件呈现出来,由于我拥有的页面数量,这需要30秒的时间。正如您可以想象的,这可能会令人沮丧,而我只完成了项目的一半。

有没有人知道让Grunt只渲染我修改过的页面而不是所有页面的方法?

下面是我的Gruntfile.js:

代码语言:javascript
复制
'use strict';

module.exports = function(grunt) {

// 1. All configuration goes here
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    concat: {
        dist: {
            src: [
                'vendor/jquery-ui/ui/core.js',
                'vendor/jquery-ui/ui/widget.js',
                'vendor/jquery-ui/ui/accordion.js',
                'vendor/jquery-ui/ui/datepicker.js',
                'javascript/slick/slick.js',
                'vendor/magnific-popup/dist/jquery.magnific-popup.min.js',
                'vendor/heapbox/src/jquery.heapbox-0.9.4.js',
                'vendor/jquery-waypoints/waypoints.js',
                'vendor/jquery-waypoints/shortcuts/sticky-elements/waypoints-sticky.js',
                'javascript/*.js'
            ],
            dest: 'public/javascript/scripts.js'
        }
    },

    uglify: {
        build: {
            src: 'public/javascript/scripts.js',
            dest: 'public/javascript/scripts.min.js'
        }
    },

    copy: {
        main: {
            src: [
                'vendor/jquery/dist/*.js',
                'vendor/prismjs/*',
                'vendor/bigSlide/**',
                'vendor/bigSlide/**',
                'vendor/magnific-popup/dist/*',
                'images/*'
            ],
            dest: 'public/'
        }
    },

    sass: {
        dist: {
            options: {
                style: 'compressed'
            },
            files: {
                'public/css/style.min.css': 'scss/style.scss'
            }
        },
        expanded: {
            options: {
                style: 'expanded'
            },
            files: {
                'public/css/style.css': 'scss/style.scss'
            }
        }
    },

    watch: {
        all: {
            files: ['*.hbs', 'patterns/*.hbs', 'layouts/*.hbs', 'templates/*.hbs'],
            tasks: ['assemble'],
            options: {
                spawn: false
            }
        },
        css: {
            files: ['scss/*.scss', 'scss/**/*.scss'],
            tasks: ['sass'],
            options: {
                spawn: false
            }
        },
        copy: {
            files: ['images/*', 'vendor/*', 'CHANGELOG'],
            tasks: ['copy'],
            options: {
                spawn: false
            }
        },
        concat: {
            files: ['javascript/*.js'],
            tasks: ['concat', 'uglify'],
            options: {
                spawn: false
            }
        }
    },

    assemble: {
        options: {
            flatten: false,
            plugins: ['assemble-middleware-permalinks'],
            partials: ['patterns/*.hbs'],
            helpers: ['handlebars-helper-compose', 'handlebars-helper-include' ],
            layoutdir: 'layouts',
            layout: 'library.hbs',
            data: ['templates/data/*.{json,yml}'],
            collections: [{
                name: 'patterns',
                inflection: 'pattern'
            }]
        },
        pages: {
            src: ['*.hbs', 'patterns/*.hbs', 'templates/*.hbs'],
            dest: 'public/'
        },
        patterns: {
            options: {
                layout: 'default.hbs'
            },
            files: {
                'public/': ['patterns/*.hbs']
            }
        },
        files: {
            options: {
                layout: 'default.hbs'
            },
            files: {
                'public/': ['templates/*.hbs']
            }
        }
    }

});

// 3. Where we tell Grunt we plan to use this plug-in.
grunt.loadNpmTasks('assemble');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');

// 4. Where we tell Grunt what to do when we type "grunt" into the terminal.
grunt.registerTask('default', ['copy', 'assemble', 'sass', 'watch']);

};

有人能帮上忙吗?干杯。史蒂夫

EN

回答 1

Stack Overflow用户

发布于 2014-10-23 00:28:55

你试过了吗:https://www.npmjs.org/package/grunt-newer

它适用于两种类型的任务:

1)同时指定src和dest文件的任务。在这种情况下,以newer为前缀的任务将被配置为使用比相应的dest文件新的src文件运行(基于文件的mtime )。

2)仅指定src文件的任务。在这种情况下,以newer为前缀的任务将被配置为使用比上一次成功运行同一任务新的src文件运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26512257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档