diff options
Diffstat (limited to '')
5 files changed, 50 insertions, 4 deletions
diff --git a/packages/astro/src/runtime.ts b/packages/astro/src/runtime.ts index 53a5fa8bb..a12f5d4fe 100644 --- a/packages/astro/src/runtime.ts +++ b/packages/astro/src/runtime.ts @@ -418,12 +418,14 @@ async function createSnowpack(astroConfig: AstroConfig, options: CreateSnowpackO packageOptions: { knownEntrypoints, external, - }, - alias: { - ...Object.fromEntries(nodeBuiltinsMap), - }, + } }); + const polyfillNode = (snowpackConfig.packageOptions as any).polyfillNode as boolean; + if(!polyfillNode) { + snowpackConfig.alias = Object.fromEntries(nodeBuiltinsMap); + } + snowpack = await startSnowpackServer( { config: snowpackConfig, diff --git a/packages/astro/test/builtins-polyfillnode.test.js b/packages/astro/test/builtins-polyfillnode.test.js new file mode 100644 index 000000000..8fef5e8e9 --- /dev/null +++ b/packages/astro/test/builtins-polyfillnode.test.js @@ -0,0 +1,19 @@ +import { suite } from 'uvu'; +import * as assert from 'uvu/assert'; +import { doc } from './test-utils.js'; +import { setup } from './helpers.js'; + +const Builtins = suite('Node builtins with polyfillNode option'); + +setup(Builtins, './fixtures/builtins-polyfillnode'); + +Builtins('Doesnt alias to node: prefix', async ({ runtime }) => { + const result = await runtime.load('/'); + if (result.error) throw new Error(result.error); + + const $ = doc(result.contents); + + assert.match($('#url').text(), new RegExp('unicorn.jpg')); +}); + +Builtins.run(); diff --git a/packages/astro/test/fixtures/builtins-polyfillnode/package.json b/packages/astro/test/fixtures/builtins-polyfillnode/package.json new file mode 100644 index 000000000..1c1382619 --- /dev/null +++ b/packages/astro/test/fixtures/builtins-polyfillnode/package.json @@ -0,0 +1,7 @@ +{ + "name": "@astrojs/astro-test-builtins-polyfillnode", + "version": "1.2.0", + "dependencies": { + "file-url": "4.0.0" + } +}
\ No newline at end of file diff --git a/packages/astro/test/fixtures/builtins-polyfillnode/snowpack.config.json b/packages/astro/test/fixtures/builtins-polyfillnode/snowpack.config.json new file mode 100644 index 000000000..3c503c831 --- /dev/null +++ b/packages/astro/test/fixtures/builtins-polyfillnode/snowpack.config.json @@ -0,0 +1,6 @@ +{ + "workspaceRoot": "../../../../../", + "packageOptions": { + "polyfillNode": false + } +} diff --git a/packages/astro/test/fixtures/builtins-polyfillnode/src/pages/index.astro b/packages/astro/test/fixtures/builtins-polyfillnode/src/pages/index.astro new file mode 100644 index 000000000..8286f1ed1 --- /dev/null +++ b/packages/astro/test/fixtures/builtins-polyfillnode/src/pages/index.astro @@ -0,0 +1,12 @@ +--- +import fileUrl from 'file-url'; + +const r = fileUrl('unicorn.jpg'); +--- + +<html> +<head><title>Testing</title></head> +<body> + <div id="url">{r}</div> +</body> +</html>
\ No newline at end of file |