编辑:检查版本信息。grunt-contrib-watch
现在有 livereload 支持。
真是太棒了。我也遇到了这个问题,所以让我尽我所能解释(或者至少让你开始运行)。请记住,这就是我设置它的方式,并且它似乎大部分时间都可以工作。
对于初学者,您需要确保package.json
使用正确的依赖项更新您的。我不确定 livereload 是否适用于“监视”任务中的烘焙,并且我最近一直在使用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 你想要 grunt (duhhh)、livereload、connect 似乎有助于挂载文件夹,并且像 grunt-watch 一样,它似乎工作得更好(我忘记了为什么)。
package.json
如果你愿意的话,你可以通过在它自己的“devDependencies”对象中指定 livereload来让你变得更好。现在,运行你的老派来npm install
获得项目中的好东西。
让我们谈谈 gruntfiles:
您可能知道,gruntfile 是使魔术发生的原因。在您的 gruntfile 底部的某个地方,您需要指定
grunt.loadNpmTasks('grunt-regarde');
grunt.loadNpmTasks('grunt-contrib-livereload');
grunt.loadNpmTasks('grunt-contrib-connect');
在您的 gruntfile 顶部,我们将要添加一些用于 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 的内容。再一次,我忘记了 connect 在做什么,但这是中间件魔法发挥作用的地方。在您的 modules.exports 中,添加:
connect: {
livereload: {
options: {
port: 9999,
middleware: function(connect, options) {
return [lrSnippet, folderMount(connect, '.')]
}
}
}
},
现在我们想要查看文件。我喜欢设置一些不同的任务,因为我不希望每次保存 CSS 文件时都运行整个 grunt 进程。这是我的工作(再次,添加到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']
}
},
您可以看到,我只*.css
希望在编译的 css ( ) 或编译的 html发生更改时触发 livereload 。如果我编辑 SCSS 文件,我只想启动指南针。如果我编辑一个翡翠模板,我只想将翡翠触发到 HTML 编译器。我想你可以看到发生了什么。你可以玩弄这个,只是要聪明一点,因为你可能会陷入无限循环。
最后,您需要启动这些进程。我喜欢将它们全部与我的主要 grunt 任务联系起来,因为我的 gruntfile 就是那么甜蜜。
// Default task.
grunt.registerTask('default', ['livereload-start', 'connect', 'regarde']);
现在,当你grunt
在 CLI 中启动时,你应该(希望,也许,交叉手指)得到这样的东西:
Running "connect:livereload" (connect) task
Starting connect web server on localhost:9999.
浏览http://localhost:9999/yourpage.html
并观看魔术发生。
完整的 gruntfile 在这里。 完整的 package.json 在这里。