         logger.error error
     else
       logger.info generateCompilationLog startTime, fileList.assets, generatedFiles, disposed
+      # pass `fs_utils.GeneratedFile` instances to callbacks.
+      callback generatedFiles
+
+    return unless watcherReady
 
     # If it’s single non-continuous build, close file watcher and
     # exit process with correct exit code.

# startTime  - Number. Timestamp of a moment when compilation started.
#
# Returns Function.
getCompileFn = (config, joinConfig, fileList, optimizers, watcher, callback) -> (startTime) ->
  assetErrors = fileList.getAssetErrors()
  if assetErrors?
    assetErrors.forEach (error) -> logger.error error

        return unless worker {changeFileList, compilers, linters, fileList, @config}

      bindWatcherEvents @config, fileList, compilers, linters, watcher, reload, @_startCompilation
      watcherReady = false
      watcher.once 'ready', -> watcherReady = true
      fileList.on 'ready', => compile @_endCompilation(), watcherReady if @_start
      # Emit `change` event for each file that is included with plugins.
      # Wish it worked like `watcher.add includes`.
      includes.forEach (path) =>
