grunt自动刷新liveload

需要的grunt插件

  • grunt-contrib-watch
  • grunt-contrib-connect
  • connect-livereload

优点:自动搭建静态文件服务器,不需在自己电脑上搭建Web服务器。
不需要浏览器插件的支持(不现定于某个浏览器)。
不需要给网页手动添加livereload.js。
缺点:对于刚接触的人,配置略显复杂。

Gruntfile.js的配置

一、官方配置

connect: {
    options: {
        port: 3000,
        hostname: 'localhost'
    },
    dev: {
        options: {
            middleware: function (connect) {
                return [
                    require('connect-livereload')(),
                    checkForDownload,
                    mountFolder(connect, '.tmp'),
                    mountFolder(connect, 'app')
                ];
            }
        }
    }
}

二、普通配置(复制粘贴即可用)

module.exports = function (grunt) {
    // LiveReload的默认端口号,你也可以改成你想要的端口号
    var lrPort = 35729;
    // 使用connect-livereload模块,生成一个与LiveReload脚本
    // <script src="http://127.0.0.1:35729/livereload.js?snipver=1" type="text/javascript"></script>
    var lrSnippet = require('connect-livereload')({
        port: lrPort
    });
    var serveStatic = require('serve-static');
    var serveIndex = require('serve-index');
    // 使用 middleware(中间件),就必须关闭 LiveReload 的浏览器插件
    var lrMiddleware = function (connect, options) {
        return [
            // 把脚本,注入到静态文件中
            lrSnippet,
            // 静态文件服务器的路径
            serveStatic(options.base[0]),
            // 启用目录浏览(相当于IIS中的目录浏览)
            serveStatic(options.base[0])
            // 静态文件服务器的路径(老版本)connect.static(options.base[0])
            // 启用目录浏览(相当于IIS中的目录浏览)(老版本)connect.directory(options.base[0])

        ];
    };

    // 项目配置(任务配置)
    grunt.initConfig({
        // 读取我们的项目配置并存储到pkg属性中
        pkg: grunt.file.readJSON('package.json'),
        // 通过connect任务,创建一个静态服务器
        connect: {
            options: {
                // 服务器端口号
                port: 8000,
                // 服务器地址(可以使用主机名localhost,也能使用IP)
                hostname: 'localhost',
                // 物理路径(默认为. 即根目录) 注:使用'.'或'..'为路径的时,可能会返回403 Forbidden. 此时将该值改为相对路径 如:/grunt/reloard。
                base: './'
            },
            livereload: {
                options: {
                    // 通过LiveReload脚本,让页面重新加载。
                    middleware: lrMiddleware
                }
            }
        },
        // 通过watch任务,来监听文件是否有更改
        watch: {
            client: {
                // 我们不需要配置额外的任务,watch任务已经内建LiveReload浏览器刷新的代码片段。
                options: {
                    livereload: lrPort
                },
                // '**' 表示包含所有的子目录
                // '*' 表示包含所有的文件
                files: ['*.html', 'css/*', 'js/*', 'images/**/*']
            }
        }
    }); // grunt.initConfig配置完毕

    // 加载插件
    grunt.loadNpmTasks('grunt-contrib-connect');
    grunt.loadNpmTasks('grunt-contrib-watch');

    // 自定义任务
    grunt.registerTask('live', ['connect', 'watch']);
};

看到如下提示,说明Web服务器搭建完成,并且开始监听任务:

Running "connect:livereload" (connect) task
Started connect web server on localhost:8000

Running "watch" task
Waiting...

:执行该命令前,如果你有安装过LiveReload的浏览器插件,必须关闭。

注意在网上的好多配置中都是用的老版配置,可能会导错误或页面打不开的情况
grunt-contrib-connect 0.11.x 版本开始,静态文件服务器的创建,需要安装 serve-static 插件支持,否则会出现错误提示“connect.static is not a function Use.” 另外,启用目录浏览,也需要独立安装 serve-index 插件才能支持。

serve-static(用于创建静态文件服务器)、serve-index(用于启用目录浏览)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值