From 365a855abc28f6896f7c11be06df5bea33add1fb Mon Sep 17 00:00:00 2001 From: cha0s Date: Sat, 12 Mar 2022 09:03:07 -0600 Subject: [PATCH] fix: server stubs --- packages/core/package.json | 2 -- packages/core/src/empty.js | 0 packages/core/src/server/flecks.js | 3 ++- packages/server/src/server/build/runtime.js | 8 ++++++-- .../server/src/server/build/server.neutrinorc.js | 13 ++----------- 5 files changed, 10 insertions(+), 16 deletions(-) delete mode 100644 packages/core/src/empty.js diff --git a/packages/core/package.json b/packages/core/package.json index cb6b573..f3eb5e4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -26,8 +26,6 @@ "build", "cli.js", "cli.js.map", - "empty.js", - "empty.js.map", "index.js", "index.js.map", "server.js", diff --git a/packages/core/src/empty.js b/packages/core/src/empty.js deleted file mode 100644 index e69de29..0000000 diff --git a/packages/core/src/server/flecks.js b/packages/core/src/server/flecks.js index a3b027d..363379c 100644 --- a/packages/core/src/server/flecks.js +++ b/packages/core/src/server/flecks.js @@ -513,7 +513,7 @@ export default class ServerFlecks extends Flecks { return undefined; } - runtimeCompiler(runtime, neutrino, allowlist = []) { + runtimeCompiler(runtime, neutrino, {additionalModuleDirs = [], allowlist = []} = {}) { const {config} = neutrino; // Pull the default compiler. if (config.module.rules.has('compile')) { @@ -546,6 +546,7 @@ export default class ServerFlecks extends Flecks { const resolved = dirname(R.resolve(join(root, 'package.json'))); const sourcepath = this.sourcepath(resolved); const sourceroot = join(sourcepath, '..'); + additionalModuleDirs.push(join(sourceroot, 'node_modules')); const configFile = this.buildConfig('babel.config.js'); debug('compiling: %s with %s', root, configFile); const babel = { diff --git a/packages/server/src/server/build/runtime.js b/packages/server/src/server/build/runtime.js index 83825db..7194e38 100644 --- a/packages/server/src/server/build/runtime.js +++ b/packages/server/src/server/build/runtime.js @@ -65,13 +65,17 @@ module.exports = async (flecks) => { ]; config.resolve.alias .set('@flecks/server/runtime$', runtime); - flecks.runtimeCompiler('server', neutrino, allowlist); + const nodeExternalsConfig = { + additionalModuleDirs: [], + allowlist, + }; + flecks.runtimeCompiler('server', neutrino, nodeExternalsConfig); // Rewrite to signals for HMR. if ('production' !== config.get('mode')) { allowlist.push(/^webpack/); } // Externalize the rest. const nodeExternals = R('webpack-node-externals'); - config.externals(nodeExternals({allowlist})); + config.externals(nodeExternals(nodeExternalsConfig)); }; }; diff --git a/packages/server/src/server/build/server.neutrinorc.js b/packages/server/src/server/build/server.neutrinorc.js index ce9b3d1..7c3cd12 100644 --- a/packages/server/src/server/build/server.neutrinorc.js +++ b/packages/server/src/server/build/server.neutrinorc.js @@ -109,19 +109,10 @@ module.exports = (async () => { start, ], }; - // Stub out non-server-friendly modules on the server. const stubs = flecks.stubs(); - if (stubs.length > 0) { - config.use.unshift(({config}) => { - stubs.forEach((path) => { - config.resolve.alias - .set(path, '@flecks/core/empty'); - }); - }); - } - // Hardcore hax for module aliasing. const aliases = flecks.aliases(); + // Do we need to get up in `require()`'s guts? if ( Object.keys(aliases).length > 0 || stubs.length > 0 @@ -130,7 +121,7 @@ module.exports = (async () => { .map((stub) => ( 'string' === typeof stub ? JSON.stringify(stub) - : `new RegExp(${JSON.stringify(stub.toString())})` + : `new RegExp(${JSON.stringify(stub.toString().slice(1, -1))})` )); const code = [ `const aliases = ${JSON.stringify(aliases)};`,