diff --git a/packages/next/build/babel/preset.ts b/packages/next/build/babel/preset.ts
index 2ce4ffd594a5..bdd220650427 100644
--- a/packages/next/build/babel/preset.ts
+++ b/packages/next/build/babel/preset.ts
@@ -1,4 +1,6 @@
import { PluginItem } from 'next/dist/compiled/babel/core'
+import { dirname } from 'path'
+
const env = process.env.NODE_ENV
const isProduction = env === 'production'
const isDevelopment = env === 'development'
@@ -168,7 +170,9 @@ module.exports = (
helpers: true,
regenerator: true,
useESModules: supportsESM && presetEnvConfig.modules !== 'commonjs',
- absoluteRuntime: process.versions.pnp ? __dirname : undefined,
+ absoluteRuntime: dirname(
+ require.resolve('@babel/runtime/package.json')
+ ),
...options['transform-runtime'],
},
],
diff --git a/test/unit/next-babel.unit.test.js b/test/unit/next-babel.unit.test.js
index a385ea401722..858678dbed9b 100644
--- a/test/unit/next-babel.unit.test.js
+++ b/test/unit/next-babel.unit.test.js
@@ -64,8 +64,8 @@ describe('next/babel', () => {
expect(output).toMatch(`__jsx(${react}.Fragment`)
expect(output).toMatch(`__jsx("a",{href:"/"`)
- expect(babel(`const a = ()=>home`)).toMatchInlineSnapshot(
- `"\\"use strict\\";var _interopRequireDefault=require(\\"@babel/runtime/helpers/interopRequireDefault\\");var _react=_interopRequireDefault(require(\\"react\\"));var __jsx=_react[\\"default\\"].createElement;var a=function a(){return __jsx(\\"a\\",{href:\\"/\\"},\\"home\\");};"`
+ expect(babel(`const a = ()=>home`)).toMatch(
+ `var _react=_interopRequireDefault(require("react"));var __jsx=_react["default"].createElement;var a=function a(){return __jsx("a",{href:"/"},"home");};`
)
})