How to Fix the Error Error:error:0308010C:digital envelope routines::unsupported
If you are running Webpack or a CLI tool that’s built on top of Webpack (e.g.,  react-scripts  for  Create React App  applications or  vue-cli-service  for  Vue  applications) with version 17 of Node.js, then you may have come across the following error: With Node.js v17+ supporting  OpenSSL 3.0 , algorithms like MD4 have been relegated to OpenSSL 3.0’s legacy provider. A  provider  is a collection of cryptographic algorithm implementations. OpenSSL 3.0 comes with  five standard providers : default, legacy, FIPS, base and null. The legacy provider consists of algorithms that are considered to be rarely used in today’s world or unsafe security-wise. This provider exists for backwards compatibility purposes (for software that still rely on these algorithms) and is not loaded by default. Webpack creates hashes using the  crypto.createHash()  method of the Node.js  crypto  module. This method can only create hashes with algorithms that are available and supported by the version of OpenSSL corresponding to the currently installed Node.js version. Since Webpack specifies to the  crypto.createHash()  method to use the MD4 algorithm (see below code), and this algorithm is not readily available in Node.js v17+ due to OpenSSL 3.0 not loading legacy providers by default, Webpack errors out and Node.js logs the error message  Error: error:0308010C:digital envelope routines::unsupported .