From 9dd5ff2baa716a6b12f681ff09559a3c8dd7b5cd Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Wed, 25 Nov 2020 14:28:39 -0800 Subject: [PATCH] fix: Revert #18921 and inline absolute babel runtime only for YarnPnp (#19542) This reverts #18921 and ensures that the Babel runtime is only inlined as an absolute path when using PnP as before, but then including the correction this resolution as implemented by @merceyz only in the PnP cases, while keeping the diff to a minimum. --- packages/next/build/babel/preset.ts | 7 +++---- test/unit/next-babel.unit.test.js | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/next/build/babel/preset.ts b/packages/next/build/babel/preset.ts index 206ad2d753d3..5a563c78e50a 100644 --- a/packages/next/build/babel/preset.ts +++ b/packages/next/build/babel/preset.ts @@ -1,6 +1,5 @@ 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' @@ -170,9 +169,9 @@ module.exports = ( helpers: true, regenerator: true, useESModules: supportsESM && presetEnvConfig.modules !== 'commonjs', - absoluteRuntime: dirname( - require.resolve('@babel/runtime/package.json') - ), + absoluteRuntime: process.versions.pnp + ? dirname(require.resolve('@babel/runtime/package.json')) + : undefined, ...options['transform-runtime'], }, ], diff --git a/test/unit/next-babel.unit.test.js b/test/unit/next-babel.unit.test.js index 74feee34f099..3f3daf88e843 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`)).toMatch( - `var _react=_interopRequireDefault(require("react"));var __jsx=_react["default"].createElement;var a=function a(){return __jsx("a",{href:"/"},"home");};` + 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\\");};"` ) })