3

所以我爱上了 grunt 和 live-reload。我不明白的一件事是如何在 css 或 js 重新加载时让我的 html 重新加载。使用我下面的代码,可以使用 live-reload chrome 扩展实时查看和更新​​ HTML。但是当 sass 被编译成 css 时,我需要 html 来重新加载。

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        compass: {
          dist: {
            options: {
              cssDir: 'styles',
              sassDir: 'sass',
              imagesDir: 'images',
              javascriptsDir: 'scripts',
              force: true
            }
          }
        },
        cssmin: {
          minify: {
            expand: true,
            cwd: 'styles',
            src: ['*.css', '!*.min.css'],
            dest: 'styles',
            ext: '.min.css'
          }
        },
        watch: {
            sass: {
                files: '**/*.scss',
                tasks: ['compass']
            },
            css: {
                files: '**/*.css',
                tasks: ['cssmin'],
            },
            html: {
                files: ['index.html','**/*.css'],
                options: {
                    livereload: true
                }
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib');
    grunt.registerTask('default',['watch','compass']);
}
4

1 回答 1

9

实时重新加载的目的是仅重新加载那些已更改的资源,因此如果编译了 CSS,则需要重新加载该资源,而不是 HTML。实时重新加载扩展将根据更改的内容完成其余工作。因此,还要将 livereload 选项添加到您的 CSS 目标中。

    watch: {
        sass: {
            files: '**/*.scss',
            tasks: ['compass']
        },
        css: {
            files: '**/*.css',
            tasks: ['cssmin'],
            options: {
                livereload: true
            }
        },
        html: {
            files: ['index.html','**/*.css'],
            options: {
                livereload: true
            }
        }
    }
于 2013-09-24T20:09:35.727 回答