1

这是我的gulpfile.coffee

# Dependencies
gulp           = require "gulp"
browserSync    = require "browser-sync"
minimist       = require "minimist"



# Configuration
available_arguments =

  # Default values
  default:
    path: ''
    mode: false

  # What arguments to treat as strings
  string: [
    'path'
  ]



# Preparation
args = minimist process.argv.slice(2), available_arguments



# Start BrowserSync
gulp.task "browser-sync", ->
  browserSync
    open:      args.path?
    startPath: args.path
    ghostMode: args.ghost
    server:
      baseDir: "./"


# Use default task to launch BrowserSync and watch JS files
gulp.task "default", ["browser-sync"], ->

  # add browserSync.reload to the tasks array to make
  # all browsers reload after tasks are complete.
  gulp.watch "*.html", browserSync.reload

它使用 BrowserSync 来监视某些文件并重新加载浏览器。

它目前设计用于处理静态文件。

我已经开始使用静态站点生成器 Middleman。Middleman 运行一个开发网络服务器,它从源代码呈现生成的网页。

我能够修改上述 Gulpfile 以便 BrowserSync 代理到中间人而不是提供静态文件。

我很难弄清楚的是如何让 Gulp 在后台启动 Middleman。

要求:

  • 中间人应该在后台启动之前gulp.watch(最后一行)。
  • Middleman 应该与 Gulp 并行运行。IE。Gulp 不应该等待 Middleman 完成。
  • 中间人应该打印到终端(正常消息和错误)。
  • 终止时应gulp watch终止中间人。
  • 当中间人终止时,Gulp 应该终止,这样我就可以在解决导致中间人终止的问题后重新启动中间人。

运行 Middleman 的命令是bundle exec middleman server.

4

0 回答 0