Upgrading to Node v18 but when I start the app I am getting the error:
Starting the development server...
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports (/Users/user/src/my-app/node_modules/react-scripts/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/user/src/my-app/node_modules/react-scripts/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/user/src/my-app/node_modules/react-scripts/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/user/src/my-app/node_modules/react-scripts/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/user/src/my-app/node_modules/react-scripts/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/user/src/my-app/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/user/src/my-app/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/user/src/my-app/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
/Users/user/src/my-app/node_modules/react-scripts/scripts/start.js:19
throw err;
^
Have tried solutions from this other thread. I've tried updating the webpack config (or in my case the react-app-rewired
config) to include:
module.exports = {
webpack: (config, env) => {
config.output.hashFunction = 'xxhash64';
return config;
},
};
but that just leads to the error:
Error: Digest method not supported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
I also tried setting the hashFunction to sha256
and sha512
but they result in the original digital envelope error.
I also tried npm audit --fix
but the error remains.
I am able to start the app if I prepend the run command in package.json with NODE_OPTIONS='--openssl-legacy-provider'
:
"scripts": {
"start": "NODE_OPTIONS='--openssl-legacy-provider' react-app-rewired start",
...
Is that the only solution to this? Thanks.