diff --git a/.changeset/early-pans-serve.md b/.changeset/early-pans-serve.md new file mode 100644 index 00000000..7e116408 --- /dev/null +++ b/.changeset/early-pans-serve.md @@ -0,0 +1,5 @@ +--- +'@aziontech/builder': patch +--- + +fix(builder): resolve azion polyfills package specifier to filesystem path in esbuild plugin diff --git a/packages/builder/src/bundlers/esbuild/plugins/azion-polyfills/azion-polyfills.ts b/packages/builder/src/bundlers/esbuild/plugins/azion-polyfills/azion-polyfills.ts index 892b74c9..ee5cd6d0 100644 --- a/packages/builder/src/bundlers/esbuild/plugins/azion-polyfills/azion-polyfills.ts +++ b/packages/builder/src/bundlers/esbuild/plugins/azion-polyfills/azion-polyfills.ts @@ -1,8 +1,11 @@ import { PluginBuild } from 'esbuild'; import fs from 'fs'; +import { createRequire } from 'module'; import path from 'path'; import azionLibs from '../../../../helpers/azion-local-polyfills'; +const requireCustom = createRequire(import.meta.url); + /** * ESBuild Azion Module Plugin for polyfilling node modules. * @param {boolean} isProduction Parameter to identify whether the build is dev or prod @@ -89,8 +92,10 @@ const ESBuildAzionModulePlugin = (isProduction: boolean) => { throw new Error(`Could not resolve module: ${args.path}`); } - const contents = await fs.promises.readFile(resolved, 'utf8'); - const resolveDir = path.dirname(resolved); + // Resolve package exports (e.g., @aziontech/builder/polyfills/...) to a filesystem path + const resolvedPath = requireCustom.resolve(resolved); + const contents = await fs.promises.readFile(resolvedPath, 'utf8'); + const resolveDir = path.dirname(resolvedPath); return { loader: 'js',