咕噜咕噜的手表&连

时间:2014-02-17 18:20:22

标签: javascript gruntjs jekyll grunt-contrib-watch

我对咕噜有点新,想和Jekyll一起使用,还有一些LESS编译。

我现在的问题是,我已经完成了LESS-comipiling的实时重载和监视任务,可以通过grunt构建我的jekyll网站,但是如何运行类似jekyll serve或grunt-connect和{ {1}}同时? 我想要一个笨拙的任务,提供观看我的LESS文件等,构建jekyll网站,然后使用grunt-connect或其他任何东西运行一个小型Web服务器。

到目前为止我的Gruntfile.js:

grunt watch

3 个答案:

答案 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-connectgrunt-connect阻止...... 希望它有所帮助。

答案 2 :(得分:2)

我认为解决方案的核心是创建新任务或编辑现有任务,如下所示:

// Start web server
grunt.registerTask('serve', [
    'jekyll:dist',
    'connect:livereload',
    'watch'
]);

...您将使用$ grunt serve运行。 lessjshintuglifyconnect已包含在watch下。{/ p>