Index: node_modules/nodemon/lib/spawn.js
===================================================================
--- node_modules/nodemon/lib/spawn.js	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/nodemon/lib/spawn.js	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,74 @@
+const path = require('path');
+const utils = require('./utils');
+const merge = utils.merge;
+const bus = utils.bus;
+const spawn = require('child_process').spawn;
+
+module.exports = function spawnCommand(command, config, eventArgs) {
+  var stdio = ['pipe', 'pipe', 'pipe'];
+
+  if (config.options.stdout) {
+    stdio = ['pipe', process.stdout, process.stderr];
+  }
+
+  const env = merge(process.env, { FILENAME: eventArgs[0] });
+
+  var sh = 'sh';
+  var shFlag = '-c';
+  var spawnOptions = {
+    env: merge(config.options.execOptions.env, env),
+    stdio: stdio,
+  };
+
+  if (!Array.isArray(command)) {
+    command = [command];
+  }
+
+  if (utils.isWindows) {
+    // if the exec includes a forward slash, reverse it for windows compat
+    // but *only* apply to the first command, and none of the arguments.
+    // ref #1251 and #1236
+    command = command.map(executable => {
+      if (executable.indexOf('/') === -1) {
+        return executable;
+      }
+
+      return  executable.split(' ').map((e, i) => {
+        if (i === 0) {
+          return path.normalize(e);
+        }
+        return e;
+      }).join(' ');
+    });
+    // taken from npm's cli: https://git.io/vNFD4
+    sh = process.env.comspec || 'cmd';
+    shFlag = '/d /s /c';
+    spawnOptions.windowsVerbatimArguments = true;
+    spawnOptions.windowsHide = true;
+  }
+
+  const args = command.join(' ');
+  const child = spawn(sh, [shFlag, args], spawnOptions);
+
+  if (config.required) {
+    var emit = {
+      stdout: function (data) {
+        bus.emit('stdout', data);
+      },
+      stderr: function (data) {
+        bus.emit('stderr', data);
+      },
+    };
+
+    // now work out what to bind to...
+    if (config.options.stdout) {
+      child.on('stdout', emit.stdout).on('stderr', emit.stderr);
+    } else {
+      child.stdout.on('data', emit.stdout);
+      child.stderr.on('data', emit.stderr);
+
+      bus.stdout = child.stdout;
+      bus.stderr = child.stderr;
+    }
+  }
+};
