From 8d04298beb6d8429d3f916c9579991b4faa21035 Mon Sep 17 00:00:00 2001 From: Sam Verschueren Date: Fri, 1 Feb 2019 09:29:20 +0100 Subject: [PATCH] Improve custom require logic (#128) Fixes #126 --- source/lib/utils/node/require.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/source/lib/utils/node/require.ts b/source/lib/utils/node/require.ts index 2de8d60..2f1c6f9 100644 --- a/source/lib/utils/node/require.ts +++ b/source/lib/utils/node/require.ts @@ -1,4 +1,13 @@ -// Export `__non_webpack_require__` in Webpack environments to make sure it doesn't bundle modules loaded via this method -export default typeof (global as any).__non_webpack_require__ === 'function' - ? (global as any).__non_webpack_require__ - : eval('require'); // tslint:disable-line:no-eval +let customRequire: (packageName: string) => any; + +try { + // Export `__non_webpack_require__` in Webpack environments to make sure it doesn't bundle modules loaded via this method + customRequire = (global as any).__non_webpack_require__ === 'function' + ? (global as any).__non_webpack_require__ + : eval('require'); // tslint:disable-line:no-eval +} catch { + // Use a noop in case both `__non_webpack_require__` and `require` does not exist + customRequire = () => {}; // tslint:disable-line:no-empty +} + +export default customRequire;