The same application as the client-and-server example, with the build split into separate client and server webpack configs and driven by more granular npm scripts. Useful for seeing which parts of a build belong to which target.
Part of the webpack lesson.
npm install
npm test
NODE_OPTIONS=--openssl-legacy-provider npm run build
npm run build:server
npm run devwebpack 4 hashes modules with md4, and OpenSSL 3 removed md4 from its default provider, so on Node 17 and later a build stops before it starts:
Error: error:0308010C:digital envelope routines::unsupported
code: 'ERR_OSSL_EVP_UNSUPPORTED'
That is not a problem with this example, and upgrading webpack is not the answer for notes pinned to their era. Ask node for the old provider:
NODE_OPTIONS=--openssl-legacy-provider npm run buildMeasured on Node 24: crypto.createHash('md4') throws without that flag and succeeds with it, and the build
then completes normally.