diff --git a/lib/repl.ts b/lib/repl.ts index 8605b1fbd8..3d2000be6e 100644 --- a/lib/repl.ts +++ b/lib/repl.ts @@ -54,7 +54,6 @@ export const Repl = new class ReplSingleton { // TODO: Windows does support the REPL when using named pipes. For now, // this only supports UNIX sockets. - if (process.platform === 'win32') return; Repl.setupListeners(); @@ -98,22 +97,22 @@ export const Repl = new class ReplSingleton { }); server.once('error', (err: NodeJS.ErrnoException) => { + server.close(); if (err.code === "EADDRINUSE") { fs.unlink(pathname, _err => { if (_err && _err.code !== "ENOENT") { crashlogger(_err, `REPL: ${filename}`); } - server.close(); }); + } else if (err.code === "EACCES") { + console.error(`Could not start REPL server "${filename}": Your OS doesn't support Unix sockets (everything else will still work)`); } else { crashlogger(err, `REPL: ${filename}`); - server.close(); } }); server.once('close', () => { Repl.socketPathnames.delete(pathname); - Repl.start(filename, evalFunction); }); } catch (err) { console.error(`Could not start REPL server "${filename}": ${err}`);