From 2805415bbe2543dc72f40d0c220c6c437ab3e95b Mon Sep 17 00:00:00 2001 From: Onkar Ruikar <87750369+OnkarRuikar@users.noreply.github.com> Date: Wed, 19 Jul 2023 03:34:16 +0530 Subject: [PATCH] chore(server): remove dev middlewares + merge start:{dev-server,server} scripts (#8950) Hot Module Reloading (HMR) still works without those dev middlewares, because `webpack-dev-server` is configured in the client's webpack config. Also, `start:dev-server` and `start:server` really seemed to do the same, except that `start:server` did not auto-reload. This was a pity, because it meant that `yarn start` was not actually a good shortcut for `yarn dev`. Co-authored-by: Claas Augner --- Procfile.dev | 2 +- package.json | 5 +---- server/dev.ts | 39 --------------------------------------- server/middlewares.ts | 2 -- yarn.lock | 24 ++---------------------- 5 files changed, 4 insertions(+), 68 deletions(-) delete mode 100644 server/dev.ts diff --git a/Procfile.dev b/Procfile.dev index e745a957a22a..4b6cd7474f20 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,4 @@ -server: yarn start:dev-server +server: yarn start:server type-check: cd client && tsc --noEmit --watch web: yarn start:client ssr: yarn watch:ssr diff --git a/package.json b/package.json index 0c500f7e7505..da1c78263ec0 100644 --- a/package.json +++ b/package.json @@ -38,8 +38,7 @@ "prettier-format": "prettier --write .", "start": "(test -f client/build/index.html || yarn build:client) && (test -f ssr/dist/main.js || yarn build:ssr) && (test -d client/build/en-us/_spas || yarn tool spas) && nf -j Procfile.start start", "start:client": "cd client && cross-env NODE_ENV=development BABEL_ENV=development BROWSER=none PORT=3000 node scripts/start.js", - "start:dev-server": "node-dev --experimental-loader ts-node/esm server/index.ts", - "start:server": "ts-node server/index.ts", + "start:server": "node-dev --experimental-loader ts-node/esm server/index.ts", "start:static-server": "ts-node server/static.ts", "style-dictionary": "style-dictionary build -c sd-config.js", "stylelint": "stylelint \"**/*.scss\"", @@ -253,9 +252,7 @@ "use-debounce": "^9.0.4", "webpack": "^5.88.2", "webpack-cli": "^5.1.4", - "webpack-dev-middleware": "^6.1.1", "webpack-dev-server": "^4.15.1", - "webpack-hot-middleware": "^2.25.4", "webpack-manifest-plugin": "^5.0.0", "webpack-node-externals": "^3.0.0", "workbox-webpack-plugin": "^7.0.0" diff --git a/server/dev.ts b/server/dev.ts deleted file mode 100644 index a4c5a83727e7..000000000000 --- a/server/dev.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { WebpackConfiguration } from "webpack-dev-server"; - -export const devMiddlewares = []; - -if (process.env.NODE_ENV === "development") { - const [webpack, webpackDevMiddleware, webpackHotMiddleware] = ( - await Promise.all([ - import("webpack"), - import("webpack-dev-middleware"), - import("webpack-hot-middleware"), - ]) - ).map((p) => p.default); - - const webpackConfig: WebpackConfiguration = { - entry: { - app: [ - "react-hot-loader/patch", - "webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000", - "./index.js", - ], - }, - plugins: [new webpack.HotModuleReplacementPlugin()], - }; - - const compiler = webpack(webpackConfig); - - devMiddlewares.push( - webpackDevMiddleware(compiler, { - publicPath: webpackConfig.output.publicPath, - }) - ); - - devMiddlewares.push( - webpackHotMiddleware(compiler, { - path: "/__webpack_hmr", - heartbeat: 10000, - }) - ); -} diff --git a/server/middlewares.ts b/server/middlewares.ts index 756222ccb853..3485becb95f2 100644 --- a/server/middlewares.ts +++ b/server/middlewares.ts @@ -7,7 +7,6 @@ import { import { STATIC_ROOT } from "../libs/env/index.js"; import { resolveFundamental } from "../libs/fundamental-redirects/index.js"; import { getLocale } from "../libs/locale-utils/index.js"; -import { devMiddlewares } from "./dev.js"; // Lowercase every request because every possible file we might have // on disk is always in lowercase. @@ -53,7 +52,6 @@ const originRequest = (req, res, next) => { }; export const staticMiddlewares = [ - ...devMiddlewares, slugRewrite, express.static(STATIC_ROOT, { setHeaders: (res) => { diff --git a/yarn.lock b/yarn.lock index eec47d35c1e3..0c0ebc53ed9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3588,7 +3588,7 @@ ansi-escapes@^6.0.0: dependencies: type-fest "^3.0.0" -ansi-html-community@0.0.8, ansi-html-community@^0.0.8: +ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== @@ -9744,7 +9744,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memfs@^3.1.2, memfs@^3.4.12, memfs@^3.4.3: +memfs@^3.1.2, memfs@^3.4.3: version "3.4.12" resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.12.tgz#d00f8ad8dab132dc277c659dc85bfd14b07d03bd" integrity sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw== @@ -14752,17 +14752,6 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-middleware@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz#6bbc257ec83ae15522de7a62f995630efde7cc3d" - integrity sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ== - dependencies: - colorette "^2.0.10" - memfs "^3.4.12" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - webpack-dev-server@^4.15.1: version "4.15.1" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" @@ -14799,15 +14788,6 @@ webpack-dev-server@^4.15.1: webpack-dev-middleware "^5.3.1" ws "^8.13.0" -webpack-hot-middleware@^2.25.4: - version "2.25.4" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193" - integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== - dependencies: - ansi-html-community "0.0.8" - html-entities "^2.1.0" - strip-ansi "^6.0.0" - webpack-manifest-plugin@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-5.0.0.tgz#084246c1f295d1b3222d36e955546433ca8df803"