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 便可。