编辑:检查版本信息。 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