diff --git a/lib/models/server-watcher.js b/lib/models/server-watcher.js index d2e4677e630..ad0fc0e135c 100644 --- a/lib/models/server-watcher.js +++ b/lib/models/server-watcher.js @@ -3,11 +3,13 @@ const Watcher = require('./watcher'); module.exports = class ServerWatcher extends Watcher { - constructor(options, build) { - super(options, build); + static async build(options, build) { + let { watcher: instance } = await super.build(options, build); - this.watcher.on('add', this.didAdd.bind(this)); - this.watcher.on('delete', this.didDelete.bind(this)); + instance.watcher.on('add', instance.didAdd.bind(instance)); + instance.watcher.on('delete', instance.didDelete.bind(instance)); + + return { watcher: instance }; } constructBroccoliWatcher(options) { diff --git a/lib/tasks/serve.js b/lib/tasks/serve.js index e26bab3f1f8..60c1cefad5a 100644 --- a/lib/tasks/serve.js +++ b/lib/tasks/serve.js @@ -69,12 +69,14 @@ class ServeTask extends Task { let serverRoot = './server'; let serverWatcher = null; if (fs.existsSync(serverRoot)) { - serverWatcher = new ServerWatcher({ - ui: this.ui, - analytics: this.analytics, - watchedDir: path.resolve(serverRoot), - options, - }); + serverWatcher = ( + await ServerWatcher.build({ + ui: this.ui, + analytics: this.analytics, + watchedDir: path.resolve(serverRoot), + options, + }) + ).watcher; } let expressServer =