这是我的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
.