##再探 butterfly.js - grunt.js篇(一)javascript
####神器 grunt.jscss
久仰grunt.js
的大名,學習grunt.js
一直是我todo List
的第一位。趁着新春佳節來臨之際(打醬油的日子),就來填了這個坑,完了這個心願。 grunt.js
的強大,強大在於它擁有不少用途豐富的插件,和不一樣插件之間的聯動實現更牛逼的功能。 這裏默認你們已經安裝了npm
和會用npm install
等指令,就不詳細講了。下面講用到grunt-contrib-watch
和grunt-contrib-connect
實現改動代碼自動刷新瀏覽器,而不用手動按F5
或者ctrl+R
來刷新瀏覽器。也會將這個酷炫的測試功能應用於butterfly.js
的應用開發之中。html
grunt-contrib-watch,這個插件超級強大,基本上,我見到用grunt.js
的應用開發,沒有那個不用到grunt-contrib-watch
。其功能就是:監測指定文件的改動包括:html、css、js
,當指定的文件有改動(保存後),就會觸發task
。java
grunt-contrib-connect,文檔上面,它給本身的定義就是一個connect web server
,因此,這是一個能夠建立服務器的插件。web
建立咱們的工程目錄:npm
myproject ┣app ┣butterfly ┗main ┣theme.css ┣index.html ┗index.js ┣package.json ┗Gruntfile.js
package.json
能夠用npm init
來建立,或者本身建立文件。這個屬於npm
基礎,不瞭解的本身面壁。在命令行執行如下代碼:json
npm install grunt --save-dev npm install grunt-contrib-connect --save-dev npm install grunt-contrib-watch --save-dev
上面的--save-dev
是兩根--
的,不知道爲何被吞了一根,這三行代碼,分別安裝了grunt
、grunt-contrib-connect
、grunt-contrib-watch
。 編輯Gruntfile.js
,這個文件是Grunt.js
的核心,全部Grunt.js
執行的任務都在這裏控制,Grunt.js
的原始狀態應該是這樣的:瀏覽器
module.exports = function(grunt){ pkg: grunt.file.readJSON('package.json'), grunt.initConfig({ //... }); }
先設置connect
模塊:服務器
connect: { options: { port: 9000, hostname: 'localhost', livereload: 35729 }, server: { options: { open: {target:'http://localhost:9000/main/index.html'}, base: ['app'] } } }
再設置watch
模塊:app
watch: { livereload: { options: { livereload: true }, files: ['app/main/index.html','app/main/theme.css', 'app/main/index.js'] } }
最後設置task
module.exports = function(grunt){ pkg: grunt.file.readJSON('package.json'), grunt.initConfig({ connect: { options: { port: 9000, hostname: 'localhost', livereload: 35729 }, server: { options: { open: {target:'http://localhost:9000/main/index.html'}, base: ['app'] } } }, watch: { livereload: { options: { livereload: true }, files: ['app/main/index.html','app/main/theme.css', 'app/main/index.js'] //監測文件列表 } } }); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.registerTask('default', ['connect:server', 'watch']) }
編輯完成後,在命令行輸入grunt
,grunt.js
經過grunt-contrib-connect
建立一個服務器,localhost:9000
(域名和端口在options
設置),執行命令後,你會發現瀏覽器自動打開了http://localhost:9000/main/index.html
。若是沒有報錯,就算是大功告成了。這時候你能夠改動一下index.html
、theme.css
或者是index.js
。very good
。咱們解放了F5
這個按鈕了。
其實,這個只是grunt.js
的一個小功能,grunt.js
強大得很,這裏先挖個坑,後續會和你們分享grunt.js
的其餘模塊和更加詳細的Gruntfile.js
的配置