編輯:檢查版本信息。 grunt-contrib-watch
現在有生活支持烘烤英寸
什麼是doozy。我也遇到了這個問題,所以讓我做我能解釋的事情(或者至少讓你啓動並運行)。請記住,這是如何設置它,它似乎大多數時間工作。
對於初學者,您需要確保您的package.json
具有正確的依賴關係。我不確定livereload是否適用於「watch」任務中的烘焙,而且我最近一直在使用grunt-regarde。我的package.json通常是這樣的:
"dependencies": {
"grunt": "~0.4.x",
"grunt-contrib-livereload": "0.1.2",
"grunt-contrib-connect": "0.2.0",
"grunt-regarde": "0.1.1"
},
Obvi你想咕嚕(duhhh),livereload,連接似乎幫助安裝文件夾,regarde就像咕嚕手錶,它只是似乎更好的工作(我忘記爲什麼)。
如果您非常喜歡,可以通過在自己的「devDependencies」對象中指定livereload來使您的package.json
更好。現在,運行你的好老東家npm install
來獲得你的項目的好東西。
講起gruntfiles:
正如你可能知道,gruntfile是什麼使魔術發生。地方對你gruntfile的底部,你要指定
grunt.loadNpmTasks('grunt-regarde');
grunt.loadNpmTasks('grunt-contrib-livereload');
grunt.loadNpmTasks('grunt-contrib-connect');
在你gruntfile的頂部,我們要添加一些utils的爲livereload。在/*global module:false*/
下,繼續並添加var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet;
。
之後,你並不需要學習連接,你只需要使用它。檢查我的風格:
var folderMount = function folderMount(connect, point) {
return connect.static(path.resolve(point));
};
這到來之前module.exports = function(grunt) {
現在讓我們進入gruntfile的肉。同樣,我忘記了連接正在做什麼,但這正是中間件魔術開始發揮作用的地方。在你modules.exports,添加:
connect: {
livereload: {
options: {
port: 9999,
middleware: function(connect, options) {
return [lrSnippet, folderMount(connect, '.')]
}
}
}
},
現在我們希望能有觀看的文件。我喜歡設置一些不同的任務,因爲我不希望每次保存CSS文件時都運行整個流程。這就是我一起工作(同樣,添加到module.exports
):
regarde: {
txt: {
files: ['styles/*.css', 'index.html'],
tasks: ['livereload']
},
styles: {
files: ['sass/*.scss', 'sass/*/*.scss'],
tasks: ['compass']
},
templates: {
files: ['templates/*.jade'],
tasks: ['jade']
}
},
你可以看到,我只有想livereload火的時候也出現了變化,以我的編譯CSS(*.css
)或到我的編譯的HTML。如果我編輯一個SCSS文件,我想只發射指南針。如果我編輯一個玉石模板,我只想將玉石發射到HTML編譯器。我想你可以看到發生了什麼事情。你可以玩弄這個,只要聰明一些,因爲你可能陷入無限循環。
最後,您需要關閉這些進程。我喜歡把它們全部綁在我的主要任務上,因爲我的gruntfile只是那甜。
// Default task.
grunt.registerTask('default', ['livereload-start', 'connect', 'regarde']);
現在,當你在CLI火起來grunt
,你應該(希望,也許,你的手指)得到這樣的:
Running "connect:livereload" (connect) task
Starting connect web server on localhost:9999.
瀏覽http://localhost:9999/yourpage.html
並觀看魔術發生。
full gruntfile here.full package.json here.
很好的知道。我很高興看到它被大幅簡化。 – davidtheclark 2013-05-08 00:27:28
我也是。我希望在我史詩般的回答之前知道這件事! – imjared 2013-05-08 02:52:42
謝謝,您不妨補充一點,Chrome擴展程序也完美地使用此解決方案(https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=en),因此手動添加腳本行的方式是然後過時。 – owzim 2013-05-08 23:48:37