分享Grunt.js配置: watch + liveReload 实时监测文件变化自动刷新浏览器

http://www.tuicool.com/articles/2eaQJn

 

用Grunt配置watch和liveReload组件,可以实时检测指定的文件变化并自动刷新浏览器。目前基本已经成为了我的必备配置。特别是在写前端页面的时候,不用再频繁去点浏览器刷新按钮。工作的时候把浏览器拖到扩展屏,保存文件实时看到变化,特别提高开发效率。

而且livereload插件非常人性化,在检测到不需要重刷新浏览器运行的文件,例如css文件变化时,直接在页面里重载文件,而不刷新页面。使效果反应非常快捷。

下面是我的Grunt.js文件配置:

module.exports = function(grunt){
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),   watch: {    html: {     files: ['skins/**.html'],     options: {livereload:true}    },    css: {     files: ['assets/**/*.css','skins/**/*.css'],     options: {livereload:true}    },    js: {     files: ['assets/**/*.js'],     options: {livereload:true}    },    less: {     files: ['assets/**/*.less'],     options: {livereload:false},     tasks: ['less:main']    }   },   less:{    main: { expand: true, cwd: 'assets/', src: ['**/*.less','!import.less'], dest: 'assets/', ext: '.css' }   }  });  grunt.loadNpmTasks('grunt-contrib-livereload');  grunt.loadNpmTasks('grunt-contrib-watch');  grunt.loadNpmTasks('grunt-contrib-less');  grunt.registerTask('default',['watch']);  grunt.registerTask('lessc',['less:main']); }; 

我习惯这样按照文件类型来分别配置。

在对相应的html、css、js文件发生变化时,直接调用liveReload刷新浏览器或重载文件。

在less文件发生变化时,先调用less组件的main任务,把less文件编译生成相应的css文件。css文件生成时因为文件变化会触发['watch:css']从而使liveReload重载css文件。

同样的,还可以再增加其他组件或是细分配置,例如加入uglify压缩js文件,或是contact合并等。配合使用极大的解放双手了。Grunt就是前端自动化利器!

对于liveReload,浏览器需要安装插件配合。 Chrome版本的 Firefox版本的

Grunt的配置和组件安装可以参考: Grunt快速入门

好的,我可以为您解答这个问题。 首先,我需要解释一下什么是 GruntGrunt 是一个 JavaScript 任务运行器,用于自动前端开发工作流程。它可以帮助我们完成许多重复且繁琐的任务,例如压缩 JavaScript 和 CSS、编译 LESS、Sass 等,以及自动化测试等。 接下来,我将为您提供一个 Grunt 搭建项目实例和 grunt.initConfig 配置详解: 1. 安装 Grunt 在开始之前,您需要安装 Grunt。您可以通过 npm 安装它,命令如下: ``` npm install -g grunt-cli ``` 2. 创建项目文件夹 ``` mkdir myproject cd myproject ``` 3. 初始化项目 ``` npm init ``` 4. 安装 GruntGrunt 插件 在项目文件夹中运行以下命令: ``` npm install grunt --save-dev npm install grunt-contrib-jshint --save-dev npm install grunt-contrib-uglify --save-dev ``` 以上命令会安装 Grunt 和两个 Grunt 插件:jshint 和 uglify。 5. 创建 Gruntfile.js 文件 在项目文件夹中创建一个名为 Gruntfile.js文件,并添加以下内容: ``` module.exports = function(grunt) { // 项目配置 grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), jshint: { files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'], options: { globals: { jQuery: true } } }, uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' }, build: { src: 'src/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' } } }); // 加载插件 grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); // 默认任务 grunt.registerTask('default', ['jshint', 'uglify']); }; ``` 上述代码中,我们首先定义了一个 initConfig 对象,它包含了两个任务:jshint 和 uglify。其中,jshint 任务用于检查 JavaScript 代码的语法错误,uglify 任务用于压缩 JavaScript 代码。 接下来,我们通过 grunt.loadNpmTasks() 方法加载了两个 Grunt 插件。最后,我们通过 grunt.registerTask() 方法注册了一个默认任务,它会依次执行 jshint 和 uglify 任务。 6. 运行 Grunt 在项目文件夹中运行以下命令: ``` grunt ``` 以上命令会自动执行 Gruntfile.js 中定义的默认任务。 这就是使用 Grunt 搭建项目实例和 grunt.initConfig 配置详解的全部内容。如果您有任何疑问,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值