diff --git a/src/builder/builder.mts b/src/builder/builder.mts index 7b37c08..5fcfd93 100644 --- a/src/builder/builder.mts +++ b/src/builder/builder.mts @@ -199,6 +199,12 @@ export default async function ({ platform: 'node', format: type === 'module' ? 'esm' : 'cjs', sourcesContent: false, + banner: + type === 'module' && outFile !== undefined + ? { + js: "import { createRequire } from 'module';const require = createRequire(import.meta.url);", + } + : {}, sourcemap: sourceMap ? 'inline' : false, ...(outFile === undefined ? { diff --git a/src/builder/builder.spec.mts b/src/builder/builder.spec.mts index 0ddc8c4..572760a 100644 --- a/src/builder/builder.spec.mts +++ b/src/builder/builder.spec.mts @@ -383,6 +383,8 @@ describe('test builder', () => { ); assert.deepEqual(await read(outDir), { 'index.mjs': + "import { createRequire } from 'module';const require = createRequire(import.meta.url);\n" + + '\n' + 'var hello = "world";\n' + '\n' + 'var src_default = hello + "world";\n' + @@ -408,6 +410,8 @@ describe('test builder', () => { ); assert.deepEqual(await read(outDir), { 'index.mjs': + "import { createRequire } from 'module';const require = createRequire(import.meta.url);\n" + + '\n' + 'var hello = "world";\n' + '\n' + 'import util from "node:util";\n' + @@ -444,6 +448,8 @@ describe('test builder', () => { ); assert.deepEqual(await read(outDir), { 'index.mjs': + "import { createRequire } from 'module';const require = createRequire(import.meta.url);\n" + + '\n' + 'import { hello as test } from "test-esm-module";\n' + 'import util from "node:util";\n' + 'var hello = { test, message: util.format("hello %s", "world") };\n' +