es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usando crypto.randomInt() en React

Estoy tratando de usar la API de Nodejs crypto.randomInt() en un proyecto creado con create-react-app que utiliza Webpack 5. Hasta ahora he intentado varias opciones como las siguientes:

// webpack.config.js
module.exports = {
  resolve: {
    fallback: { crypto: require.resolve('crypto-browserify') },
  }
};

Y luego, npm i crypto-browserify como recomienda el mensaje de error.

// Retorna Uncaught TypeError: randomInt no es una función
const { randomInt } = import('crypto');

console.log(randomInt(4));

Según algunos hilos, intenté:

// package.json
...
"browser": {
    "crypto": false
}
...

Sin embargo, sin suerte. También intenté import {randomInt} from 'crypto-browserify', pero esto tampoco funcionó.

¿Qué debo hacer para que esto funcione?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Si crypto.randomInt() no está disponible en tu proyecto creado con create-react-app que utiliza Webpack 5, puedes intentar los siguientes pasos para hacer que funcione:

    1. Instala el módulo crypto:
      npm install --save crypto
      
    2. Instala el módulo node-libs-browser:
      npm install --save-dev node-libs-browser
      
    3. En tu archivo webpack.config.js, agrega lo siguiente:
      const nodeLibs = require('node-libs-browser');
      
      module.exports = {
       // ...
       resolve: {
         fallback: nodeLibs,
       },
       // ...
      };
      
    4. Utiliza crypto.randomInt() de la siguiente manera:
      const { randomInt } = require('crypto');
      
      console.log(randomInt(4));
      

    Esto debería hacer que crypto.randomInt() esté disponible en tu proyecto.

Comments are closed.