我对咕噜有点新,想和Jekyll一起使用,还有一些LESS编译。
我现在的问题是,我已经完成了LESS-comipiling的实时重载和监视任务,可以通过grunt构建我的jekyll网站,但是如何运行类似jekyll serve
或grunt-connect和{ {1}}同时?
我想要一个笨拙的任务,提供观看我的LESS文件等,构建jekyll网站,然后使用grunt-connect或其他任何东西运行一个小型Web服务器。
到目前为止我的Gruntfile.js:
grunt watch
答案 0 :(得分:35)
您需要使用“base”选项告知connect在配置中提供哪个目录,在这种情况下,它将是static _site目录。您也可以将端口更改为您想要的任何内容,但最终导航到localhost:9009,并附上我的示例
connect: {
server: {
options: {
livereload: true,
base: '_site/',
port: 9009
}
}
}
您还需要在更改html模板时添加监视任务。这样的事情会起作用。
watch: {
html: {
files: ['**/*.html', '!_site/**/*.html'],
tasks: ['jekyll:dist']
}
}
然后像Wallace建议的那样创建一个“服务”任务。
// Start web server
grunt.registerTask('serve', [
'jekyll:dist',
'connect:server',
'watch'
]);
最后在命令行中运行“grunt serve”并使用您指定的端口导航到localhost。
由@jiggy评论
关键的变化是不将keepalive设置为true。 Keepalive会阻止 运行后的所有后续任务。只要连接后跟 观察服务器不会终止。
答案 1 :(得分:3)
我花了两天时间拼命尝试我在互联网上找到的每个gruntfile配置。从未工作过。然后我找到了https://stackoverflow.com/a/24765175/1541141。
使用grunt-contrib-connect
,而不是grunt-connect
。 grunt-connect
阻止......
希望它有所帮助。
答案 2 :(得分:2)
我认为解决方案的核心是创建新任务或编辑现有任务,如下所示:
// Start web server
grunt.registerTask('serve', [
'jekyll:dist',
'connect:livereload',
'watch'
]);
...您将使用$ grunt serve
运行。 less
,jshint
,uglify
和connect
已包含在watch
下。{/ p>