difo23 / contador_app

Aplicacion de pruebas usando React Native para el curso de aplicaciones moviles 2023
0 stars 0 forks source link

Issue con metro #4

Open AlfredRosarioSNK opened 1 year ago

AlfredRosarioSNK commented 1 year ago
Failed to construct transformer:  Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:138:10)
    at stableHash (C:\Users\Alfred\Desktop\contador_app-main\node_modules\metro-cache\src\stableHash.js:19:8)
    at JsTransformer.getCacheKey (C:\Users\Alfred\Desktop\contador_app-main\node_modules\metro\src\JSTransformer\worker.js:478:7)
    at getTransformCacheKey (C:\Users\Alfred\Desktop\contador_app-main\node_modules\metro\src\DeltaBundler\Transformer\getTransformCacheKey.js:39:29)
    at new Transformer (C:\Users\Alfred\Desktop\contador_app-main\node_modules\metro\src\DeltaBundler\Transformer.js:147:28)
    at C:\Users\Alfred\Desktop\contador_app-main\node_modules\metro\src\Bundler.js:54:29 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
AlfredRosarioSNK commented 1 year ago

Solución de Compatibilidad Node en Metro

Alfred Rosario 2021-0798

Para permitir que Metro use versiones anteriores de Node, debes ejecutar el siguiente comando antes de lanzar la aplicación:

bash
set NODE_OPTIONS=--openssl-legacy-provider

Esto elimina el error pero hay que ponerlo cada vez que vayamos a ejecutar el programa entonces para evitar esto si vamos a las variables del sistema y ponemos una con el nombre NODE_OPTIONS y en el valor: --openssl-legacy-provider.

Tambien se puede resolver sin hacer esto si en el archivo package.json ponemos lo siguiente en los scripts:

"scripts": {
  "start": "set NODE_OPTIONS=--openssl-legacy-provider && react-native start"
}