diff --git a/superset-frontend/babel.config.js b/superset-frontend/babel.config.js index fc1acf1bab4b..892178c41128 100644 --- a/superset-frontend/babel.config.js +++ b/superset-frontend/babel.config.js @@ -54,7 +54,6 @@ module.exports = { ['@babel/plugin-transform-runtime', { corejs: 3 }], // only used in packages/superset-ui-core/src/chart/components/reactify.tsx ['babel-plugin-typescript-to-proptypes', { loose: true }], - 'react-hot-loader/babel', [ '@emotion/babel-plugin', { diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index f30739eb581c..39794f0c52cb 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -108,7 +108,6 @@ "react-dnd-html5-backend": "^11.1.3", "react-dom": "^17.0.2", "react-google-recaptcha": "^3.1.0", - "react-hot-loader": "^4.13.1", "react-intersection-observer": "^9.16.0", "react-json-tree": "^0.20.0", "react-lines-ellipsis": "^0.16.1", @@ -25048,11 +25047,6 @@ "jspdf": "^2.5.1" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -30146,16 +30140,6 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "node_modules/global-box": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/global-box/-/global-box-2.0.2.tgz", @@ -37126,6 +37110,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -38528,6 +38513,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, "license": "MIT", "dependencies": { "big.js": "^5.2.2", @@ -40715,15 +40701,6 @@ "node": ">=4" } }, - "node_modules/min-document": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.1.tgz", - "integrity": "sha512-8lqe85PkqQJzIcs2iD7xW/WSxcncC3/DPVbTOafKNJDIMXwGfwXS350mH4SJslomntN2iYtFBuC0yNO3CEap6g==", - "license": "MIT", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -49313,35 +49290,6 @@ "react": ">=16.4.1" } }, - "node_modules/react-hot-loader": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.1.tgz", - "integrity": "sha512-ZlqCfVRqDJmMXTulUGic4lN7Ic1SXgHAFw7y/Jb7t25GBgTR0fYAJ8uY4mrpxjRyWGWmqw77qJQGnYbzCvBU7g==", - "license": "MIT", - "dependencies": { - "fast-levenshtein": "^2.0.6", - "global": "^4.3.0", - "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^2.0.3", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-intersection-observer": { "version": "9.16.0", "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.16.0.tgz", @@ -49377,12 +49325,6 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "license": "MIT" - }, "node_modules/react-lines-ellipsis": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/react-lines-ellipsis/-/react-lines-ellipsis-0.16.1.tgz", @@ -53091,12 +53033,6 @@ "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", "license": "MIT" }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, "node_modules/shapefile": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/shapefile/-/shapefile-0.3.1.tgz", diff --git a/superset-frontend/package.json b/superset-frontend/package.json index 734c6a11eae1..4e99d4a75fb1 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -187,7 +187,6 @@ "react-dnd-html5-backend": "^11.1.3", "react-dom": "^17.0.2", "react-google-recaptcha": "^3.1.0", - "react-hot-loader": "^4.13.1", "react-intersection-observer": "^9.16.0", "react-json-tree": "^0.20.0", "react-lines-ellipsis": "^0.16.1", diff --git a/superset-frontend/src/preamble.ts b/superset-frontend/src/preamble.ts index c1dfa889cf5c..1251c9c3b88f 100644 --- a/superset-frontend/src/preamble.ts +++ b/superset-frontend/src/preamble.ts @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ -import { setConfig as setHotLoaderConfig } from 'react-hot-loader'; // eslint-disable-next-line no-restricted-imports import { configure, @@ -46,11 +45,6 @@ import 'dayjs/plugin/localizedFormat'; configure(); -// Set hot reloader config -if (process.env.WEBPACK_MODE === 'development') { - setHotLoaderConfig({ logLevel: 'debug', trackTailUpdates: false }); -} - // Grab initial bootstrap data const bootstrapData = getBootstrapData(); diff --git a/superset-frontend/src/views/App.tsx b/superset-frontend/src/views/App.tsx index f4d301558a82..87df93f8b28f 100644 --- a/superset-frontend/src/views/App.tsx +++ b/superset-frontend/src/views/App.tsx @@ -17,7 +17,6 @@ * under the License. */ import { Suspense, useEffect } from 'react'; -import { hot } from 'react-hot-loader/root'; import { BrowserRouter as Router, Switch, @@ -110,4 +109,4 @@ const App = () => ( ); -export default hot(App); +export default App; diff --git a/superset-frontend/webpack.config.js b/superset-frontend/webpack.config.js index 7e424d73b7c7..83380ce499ad 100644 --- a/superset-frontend/webpack.config.js +++ b/superset-frontend/webpack.config.js @@ -224,7 +224,6 @@ if (isDevMode) { // A Superset webpage normally includes two JS bundles in dev, `theme.ts` and // the main entrypoint. Only the main entry should have the dev server client, // otherwise the websocket client will initialize twice, creating two sockets. - // Ref: https://github.com/gaearon/react-hot-loader/issues/141 PREAMBLE.unshift( `webpack-dev-server/client?http://localhost:${devserverPort}`, ); @@ -356,11 +355,9 @@ const config = { 'prop-types-extra', 'redux', 'react-redux', - 'react-hot-loader', 'react-sortable-hoc', 'react-table', 'react-ace', - '@hot-loader.*', 'webpack.*', '@?babel.*', 'lodash.*',