溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

前端自動化工具 grunt 插件 watch 的簡單使用(七)

發(fā)布時間:2020-09-21 12:23:00 來源:網(wǎng)絡(luò) 閱讀:757 作者:珞辰 欄目:web開發(fā)

一、contrib-watch 插件的使用

1、安裝 “grunt-contrib-watch ”插件命令(在終端進入到項目根目錄執(zhí)行)

            npm install grunt-contrib-watch grunt-contrib-concat grunt-contrib-uglify --save-dev

2、在項目根目錄下提供 watch 插件任務(wù)配置需要的 src 目錄和源文件(源文件放置到 src 目錄下)

            mkdir src

3、在 Gruntfile.js 文件中對 watch 任務(wù)進行配置

 // 包裝函數(shù)
module.exports = function (grunt) {
       // 任務(wù)配置,所有插件的配置信息
       grunt.initConfig({
               // 獲取 package.json 的信息
               pkg: grunt.file.readJSON('package.json'),
               // concat 插件的配置信息
               concat: {
                   options: {
                       separator: ';',                 // 設(shè)置輸出文件合并的字符
                       banner: '/*被合成的文件第一行內(nèi)容說明文字信息*/',
                       footer: '/*被合成的文件尾部內(nèi)容說明文字信息*/',
                       stripBanners: true         // 去掉被合成的文件內(nèi)容中的 /* */ 注釋信息
                   },
                   // 具體任務(wù)配置
                   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'
                   },
                   // 具體任務(wù)配置
                   build: {
                       // 源文件
                       src: 'dest/libs.js',
                       // 目標文件
                       dest: 'dest/libs.min.js'
                   }
               },
               // watch 插件的配置信息
               watch: {
                   // 具體任務(wù)配置
                   scripts: {
                       options: {
                           spawn: true            // 是否讓所有 task 任務(wù)共享一個上下文環(huán)境,加快響應(yīng)時間
                       },
                       files: ['src/*.js'],
                       tasks: ['default']
                   }
               }
       });  
// 加載指定插件任務(wù)
grunt.loadNpmTasks('grunt-contrib-watch');  
grunt.loadNpmTasks('grunt-contrib-concat');  
grunt.loadNpmTasks('grunt-contrib-uglify');  

// 默認執(zhí)行的任務(wù)
grunt.registerTask('default', ['concat','uglify']);
};

PS:watch 插件的配置有三項:

            “options”中通過使用 spawn 屬性來指定不論由 tasks 觸發(fā)的任務(wù)是不是一個子進程,當此選項設(shè)置為 false 時都可以加快響應(yīng)的時間(大概是500ms),并且能讓后來的 tasks 可以共享一個上下文環(huán)境,但這容易讓這個 watch 失效!

            “files”中指定 watch 任務(wù)需要監(jiān)視的文件。

            “tasks”中指定當監(jiān)視文件發(fā)生改變時需要執(zhí)行的任務(wù)。

4、最后在終端運行 "grunt watch" 命令

PS:如果提示 "Running "watch" task Waiting..."  證明就沒什么問題了。想要停止 watch 任務(wù)按 ctrl + c 即可。




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI