diff --git a/cmd/cmd_controller.js b/cmd/cmd_controller.js index 12b35c899..6aeb514ff 100644 --- a/cmd/cmd_controller.js +++ b/cmd/cmd_controller.js @@ -79,7 +79,8 @@ class EmbarkController { context: self.context, useDashboard: options.useDashboard, webServerConfig: webServerConfig, - webpackConfigName: options.webpackConfigName + webpackConfigName: options.webpackConfigName, + ipcRole: 'server' }); engine.init(); @@ -247,7 +248,6 @@ class EmbarkController { logFile: options.logFile, logLevel: options.logLevel, context: this.context, - ipcRole: 'client', webpackConfigName: options.webpackConfigName }); engine.init(); diff --git a/lib/core/engine.js b/lib/core/engine.js index 49eb645d4..37706cd22 100644 --- a/lib/core/engine.js +++ b/lib/core/engine.js @@ -38,10 +38,23 @@ class Engine { utils.interceptLogs(console, this.logger); } - this.ipc = new IPC({logger: this.logger, ipcRole: this.ipcRole}); - if (this.ipc.isServer()) { - this.ipc.serve(); + if (this.ipcRole) { + this.ipc = new IPC({logger: this.logger, ipcRole: this.ipcRole}); + + if(this.ipc.isServer()) { + this.ipc.serve(); + } + + return; } + + this.ipc = new IPC({logger: this.logger, ipcRole: 'client'}); + this.ipc.connect((err) => { + if(err) { + this.ipc = new IPC({logger: this.logger, ipcRole: 'server'}); + this.ipc.serve(); + } + }); } registerModule(moduleName, options) {