diff --git a/packages/server/src/modules.ts b/packages/server/src/modules.ts index fcb646d7..d4a91db8 100644 --- a/packages/server/src/modules.ts +++ b/packages/server/src/modules.ts @@ -8,10 +8,6 @@ declare var __non_webpack_require__: typeof require; * Handling of native modules within the CLI */ export const setup = (dataDirectory: string): void => { - if (!isCli) { - return; - } - try { fs.mkdirSync(path.join(dataDirectory, "modules")); } catch (ex) { @@ -21,7 +17,7 @@ export const setup = (dataDirectory: string): void => { } const unpackModule = (moduleName: string): void => { - const memFile = path.join(buildDir!, "build/modules", moduleName + ".node"); + const memFile = path.join(isCli ? buildDir! : path.join(__dirname, ".."), "build/modules", moduleName + ".node"); const diskFile = path.join(dataDirectory, "modules", moduleName + ".node"); if (!fs.existsSync(diskFile)) { fs.writeFileSync(diskFile, fs.readFileSync(memFile)); @@ -38,7 +34,7 @@ export const setup = (dataDirectory: string): void => { const nodePtyUtils = require("../../protocol/node_modules/node-pty/lib/utils") as typeof import("../../protocol/node_modules/node-pty/src/utils"); // tslint:disable-next-line:no-any nodePtyUtils.loadNative = (modName: string): any => { - return __non_webpack_require__(path.join(dataDirectory, "modules", modName + ".node")); + return (typeof __non_webpack_require__ !== "undefined" ? __non_webpack_require__ : require)(path.join(dataDirectory, "modules", modName + ".node")); }; // tslint:disable-next-line:no-any (global).SPDLOG_LOCATION = path.join(dataDirectory, "modules", "spdlog.node");