diff --git a/packages/kit/src/api/dev/loader.js b/packages/kit/src/api/dev/loader.js index ddc99e55d55b..d4fa809d1dc0 100644 --- a/packages/kit/src/api/dev/loader.js +++ b/packages/kit/src/api/dev/loader.js @@ -17,7 +17,7 @@ export default function loader(sp) { return load(pathname, url_stack); } - return import(imported); + return load_node(imported); }; const invalidate_all = (path) => { @@ -34,6 +34,13 @@ export default function loader(sp) { if (url) invalidate_all(url); }); + async function load_node(source) { + return { + exports: await import(source), + css: [] + }; + } + async function load(url, url_stack) { if (url_stack.includes(url)) { console.warn(`Circular dependency: ${url_stack.join(' -> ')} -> ${url}`); diff --git a/test/apps/basics/src/routes/node/__tests__.js b/test/apps/basics/src/routes/node/__tests__.js new file mode 100644 index 000000000000..636e07f3a96a --- /dev/null +++ b/test/apps/basics/src/routes/node/__tests__.js @@ -0,0 +1,10 @@ +import * as assert from 'uvu/assert'; + +export default function (test) { + test('allow import from node', async ({ visit, js }) => { + if (!js) { + const response = await visit('/node'); + assert.ok(response.ok(), 'Should not have server error'); + } + }); +} diff --git a/test/apps/basics/src/routes/node/index.js b/test/apps/basics/src/routes/node/index.js new file mode 100644 index 000000000000..a73b29d11d0a --- /dev/null +++ b/test/apps/basics/src/routes/node/index.js @@ -0,0 +1,7 @@ +import os from 'os'; + +export function get() { + return { + body: typeof os.arch() + }; +}