From eb75f8c8cc2316fbf68a4fa26841e77292c71f3c Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Wed, 19 Aug 2020 22:30:46 +0200 Subject: [PATCH] fix(client): ensure presetEnv is loaded (#39431) Prior to this, if a user first loaded a React challenge and then navigated to a JS challenge, they would see TypeError: Cannot read property 'presets' of undefined in the console and be unable to run tests or evaluate code until they reloaded the page. --- .../src/templates/Challenges/rechallenge/transformers.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/client/src/templates/Challenges/rechallenge/transformers.js b/client/src/templates/Challenges/rechallenge/transformers.js index 0dc65c2a0f..061e160c61 100644 --- a/client/src/templates/Challenges/rechallenge/transformers.js +++ b/client/src/templates/Challenges/rechallenge/transformers.js @@ -59,11 +59,12 @@ async function loadBabel() { } async function loadPresetEnv() { - if (presetEnv) return; + if (babelOptionsJSBase && babelOptionsJSBase.presets) return; /* eslint-disable no-inline-comments */ - presetEnv = await import( - /* webpackChunkName: "@babel/preset-env" */ '@babel/preset-env' - ); + if (!presetEnv) + presetEnv = await import( + /* webpackChunkName: "@babel/preset-env" */ '@babel/preset-env' + ); /* eslint-enable no-inline-comments */ babelOptionsJSBase = {