IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    双屏切图:使用livereload实现自动刷新

    三水清 (ksky521@gmail.com)发表于 2015-11-28 03:29:12
    love 0

    livereload是一个web开发辅助工具,当我们修改完html、css和js的时候会自动刷新浏览器,解放码农的双手。这样在双屏切图、写js代码的时候会提高很多效率。livereload有很多版本,比如基于ruby的版本,我们今天介绍的是node+grunt+chrome插件一体化方案。

    我们使用的这个livereload的基本原理是试用node开启一个websocket服务,并且检测文件变化,浏览器打开一个页面时候,引入固定的livereload.js(chrome插件会帮忙加上)会建立ws请求,当node检测到文件变化,则自动推送消息给浏览器,实现刷新。

    livereload环境搭建

    • nodejs安装
    • grunt安装
    • grunt-contrib-watch:npm install grunt-contrib-watch –save-dev
    • grunt-livereload:npm install grunt-livereload –save-dev
    • chrome插件:安装

    编写grunt的Gruntfile.js文件

    进入项目根目录,安装grunt基本服务(参考grunt使用介绍),然后修改Gruntfile.js内容,添加如下:

    livereload: {
        options: {
            base: 'public',
        },
        files: ['src/**/*']
    }
    watch: {
        all:{
            files: ['src/js/touch.js', 'src/sass/*.scss'],
            tasks: ['jshint', 'compass:dev'],
        },
        //grunt watch:js|css
        js:{
            files: ['src/js/touch.js'],
            tasks: ['jshint'],
        },
        css:{
            files: ['src/sass/*.scss'],
            tasks: ['compass:dev'],
        }
    }
    grunt.loadNpmTasks('grunt-livereload');
    grunt.registerTask('live', ['livereload', 'watch:css']);
    

    建立一个live的任务,开启livereload服务,同时watch css任务,当css文件发生变化的时候,执行compass:dev任务(即compass编译任务)。

    执行grunt任务

    当我们进行切图(或者其他事情的时候),执行cmd进入项目目录,执行下面命令来启动grunt的live任务:

    $ grunt live
    

    浏览器端使用chrome插件打开要自动刷新的页面,例如:http://127.0.0.1/test.html,

    点击chrome插件livereload的icon,仔细观察会发现icon的中间空心圆点变成了实心的。 这样就可以自动刷新了。

    使用livereload

    完成上面的步骤,这时候我们修改src/*/下的文件就会自动刷新页面,我修改了test.scss文件,

    首先触发的是watch:css任务,执行compass:dev任务,即编译css文件为test.css,

    这时触发livereload,实现自动刷新



沪ICP备19023445号-2号
友情链接