diff --git a/e2e/cases/server/ssr/rsbuild.config.ts b/e2e/cases/server/ssr/rsbuild.config.ts index 0df8b244a8..b3bae4c502 100644 --- a/e2e/cases/server/ssr/rsbuild.config.ts +++ b/e2e/cases/server/ssr/rsbuild.config.ts @@ -1,3 +1,4 @@ +import inspector from 'node:inspector'; import { defineConfig, logger, @@ -25,6 +26,8 @@ export const serverRender = export default defineConfig({ plugins: [pluginReact()], dev: { + // enable writeToDisk to make sure the sourcemap files are generated on disk for debugging + writeToDisk: inspector.url() !== undefined, setupMiddlewares: ({ unshift }, context) => { const serverRenderMiddleware = serverRender(context); @@ -53,7 +56,7 @@ export default defineConfig({ }, node: { output: { - module: true, + module: process.env.TEST_ESM_LIBRARY === 'true', target: 'node', }, source: { diff --git a/packages/core/src/server/runner/cjs.ts b/packages/core/src/server/runner/cjs.ts index 062347a8b5..8eb12f5294 100644 --- a/packages/core/src/server/runner/cjs.ts +++ b/packages/core/src/server/runner/cjs.ts @@ -110,9 +110,9 @@ export class CommonJsRunner extends BasicRunner { const args = Object.keys(currentModuleScope); const argValues = args.map((arg) => currentModuleScope[arg]); - const code = `(function(${args.join(', ')}) { - ${file.content} - })`; + + const codeDefinition = `(function(${args.join(', ')}) {`; + const code = `${codeDefinition}${file.content}\n})`; this.preExecute(code, file); const dynamicImport = new Function( @@ -122,6 +122,8 @@ export class CommonJsRunner extends BasicRunner { // Runs the compiled code contained by the `vm.Script` within the context of the current `global` object. const fn = vm.runInThisContext(code, { filename: file.path, + lineOffset: 0, + columnOffset: -codeDefinition.length, // Specify how the modules should be loaded during the evaluation of this script when `import()` is called. importModuleDynamically: async (specifier) => { const result = await dynamicImport(specifier);