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");};` ) })