1、contrib-watch 插件的使用jquery
一、安装 “grunt-contrib-watch ”插件命令(在终端进入到项目根目录执行)npm
npm install grunt-contrib-watch grunt-contrib-concat grunt-contrib-uglify --save-devjson
二、在项目根目录下提供 watch 插件任务配置须要的 src 目录和源文件(源文件放置到 src 目录下)ide
mkdir src函数
三、在 Gruntfile.js 文件中对 watch 任务进行配置grunt
// 包装函数
module.exports = function (grunt) {
// 任务配置,全部插件的配置信息
grunt.initConfig({
// 获取 package.json 的信息
pkg: grunt.file.readJSON('package.json'),
// concat 插件的配置信息
concat: {
options: {
separator: ';', // 设置输出文件合并的字符
banner: '/*被合成的文件第一行内容说明文字信息*/',
footer: '/*被合成的文件尾部内容说明文字信息*/',
stripBanners: true // 去掉被合成的文件内容中的 /* */ 注释信息
},
// 具体任务配置
dist: {
// 被合并的文件路径
src: ['src/zepto.js','src/jquery.js','src/swiper.js','src/commons.js'],
// 被合成的文件路径
dest: 'dest/libs.js'
}
},
// uglify 插件的配置信息
uglify: {
// 文件头部输出信息
options: {
banner: '/*! <%= pkg.file %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
// 具体任务配置
build: {
// 源文件
src: 'dest/libs.js',
// 目标文件
dest: 'dest/libs.min.js'
}
},
// watch 插件的配置信息
watch: {
// 具体任务配置
scripts: {
options: {
spawn: true // 是否让全部 task 任务共享一个上下文环境,加快响应时间
},
files: ['src/*.js'],
tasks: ['default']
}
}
});
// 加载指定插件任务
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
// 默认执行的任务
grunt.registerTask('default', ['concat','uglify']);
};
PS:watch 插件的配置有三项:ui
“options”中经过使用 spawn 属性来指定不论由 tasks 触发的任务是否是一个子进程,当此选项设置为 false 时均可以加快响应的时间(大概是500ms),而且能让后来的 tasks 能够共享一个上下文环境,但这容易让这个 watch 失效!spa
“files”中指定 watch 任务须要监视的文件。插件
“tasks”中指定当监视文件发生改变时须要执行的任务。orm
四、最后在终端运行 "grunt watch" 命令
PS:若是提示 "Running "watch" task Waiting..." 证实就没什么问题了。想要中止 watch 任务按 ctrl + c 便可。