4
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:140:10)
    at module.exports (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\util\createHash.js:90:53)
    at NormalModule._initBuildHash (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:386:16)      
    at handleParseError (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:434:10)
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:466:5
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:327:12
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:373:3
    at iterateNormalLoaders (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:214:10)       
    at iterateNormalLoaders (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:221:10)       
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:236:3
    at runSyncOrAsync (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:130:11)
    at iterateNormalLoaders (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:232:2)        
    at Array.<anonymous> (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
    at Storage.finished (D:\web development\frontend\react\reduxbasic\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
    at D:\web development\frontend\react\reduxbasic\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
D:\web development\frontend\react\reduxbasic\node_modules\react-scripts\scripts\start.js:19
  throw err;
  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:140:10)
    at module.exports (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\util\createHash.js:90:53)
    at NormalModule._initBuildHash (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:386:16)
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:418:10
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:293:13
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:367:11
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:233:18
    at context.callback (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
    at D:\web development\frontend\react\reduxbasic\node_modules\babel-loader\lib\index.js:51:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v19.4.0
PS D:\web development\frontend\react\reduxbasic>

how to solve this error

burnsi
  • 6,194
  • 13
  • 17
  • 27
javeria sohail
  • 41
  • 1
  • 1
  • 2
  • It looks like it is caused by an incompatible version of webpack and crypto you should check your dependencies and update them to compatible version – AstroInTheOcean Jan 19 '23 at 04:31

6 Answers6

5

You can use the following command in Unix:

export NODE_OPTIONS=--openssl-legacy-provider

For Windows, use this command instead:

set NODE_OPTIONS=--openssl-legacy-provider

Note that you don't need to downgrade your Node.js version to resolve this issue.


If you're using react-script, you may also need to upgrade it to the latest version by running:

npm i react-scripts@latest

Moshe Fortgang
  • 711
  • 4
  • 18
2

Problem:

As I can see you are using version 19 of node.js (Not recommended For Most Users), also mention on official Node.js website.

Solution:

  1. Go to Node.js Download Page

  2. Download version 18 of node.js (LTS Recommended For Most Users) for your OS.

  3. Delete node_modules and package_lock file .

  4. Run npm install.

  5. Run your app again .

Problem should be fixed now.

Sahil bakoru
  • 393
  • 1
  • 4
  • 10
2

My fix


You have to use md5 in this file md4 is the default, but it will not work.

Crypto is a tool from Node.js https://nodejs.org/api/crypto.html#cryptocreatehashalgorithm-options

I know is not ideal, but is working without an issue now, until I delete the node_modules folder

enter image description here

With this versions

➜  ~ node -v 
v19.8.1
➜  ~ npx react-native -v  
10.2.0
➜  ~ react-native --version
4.14.0
➜  ~ npm -v
9.5.1

my error

my error

Jonathan Sanchez
  • 7,316
  • 1
  • 24
  • 20
1

Above steps don't work for me, running these commands in root of the project solved the issue .

  1. export NODE_OPTIONS=--openssl-legacy-provider

  2. npm start

For more solutions on this problem : visit this article

Sahil bakoru
  • 393
  • 1
  • 4
  • 10
1

My Problem

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)

My Solution

In your package.json: change this line

"start": "react-scripts start"

to

"start": "react-scripts --openssl-legacy-provider start"

Try this will work. This has resolved my issue.

0

I also catch this error. In my case I used Node version 20.

This instruction worked for me:

  1. Use node version 18;
  2. Delete node_modules and package_lock.json file;
  3. Run npm install react-scripts@latest.

then my package.json look like:

"react": "^17.0.2",
"react-scripts": "^5.0.1",
amarsik1
  • 58
  • 4