Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

5K
Visualizações
Error de referencia no capturado: el proceso no está definido

Estoy usando node.js para crear una aplicación web. Cuando ejecuto la aplicación (ya sea abriendo index.html en el navegador o usando el comando "npm start" en la terminal) obtengo dos errores:

Error de referencia no capturado: el proceso no está definido

Error de referencia no capturado: el requerimiento no está definido

Resolví el error "requerir no está definido" al incluir específicamente en mi etiqueta de encabezado index.html el enlace a este script, donde se define la función requerida. Sin embargo, no puedo encontrar algo similar para la función de proceso.

Mi pregunta es doble:

  1. ¿Por qué es necesario volver a definir los módulos integrados de node.js? ¿Por qué no se reconocen como son, es decir, "módulos incorporados"? ¿El término "módulo incorporado" no significa que un módulo no necesita ser redefinido externamente/de segunda mano?

  2. ¿Hay alguna manera de resolver este problema? Mi secuencia de comandos es muy simple, solo estoy tratando de usar una función básica de node.js, por lo que no puedo descifrar qué errores podría haber cometido.

Si alguien ha tenido este problema y ha encontrado una forma de evitarlo o una razón por la que esto sucede, sería de gran ayuda.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El código de Node.js debe ejecutarlo el proceso del nodo, no el navegador (el código debe ejecutarse en el servidor).

Para ejecutar el código, debe ejecutar el comando:

 node server.js

Y luego puede acceder a su servidor desde un navegador escribiendo " http://localhost:8080 ", por ejemplo. Debes tener un archivo server.js (o el que sea) con el código del servidor que quieras (en este caso, creando un servidor web en el puerto 8080).

Puede seguir este sencillo ejemplo, utilizando express como módulo de servidor http: http://expressjs.com/starter/hello-world.html

over 4 years ago · Santiago Trujillo Relatório

0

Webpack puede inyectar variables de entorno en el código .js del "lado del cliente" (muy útil en el caso de SPA/PWA). Debe definirlos como complementos en webpack.config.js

 webpack.config.js module.exports = { plugins: [ new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), 'process.env.MY_ENV': JSON.stringify(process.env.MY_ENV), ... and so on ... }) ], }

Ahora puede acceder a él en el lado del cliente:

 app.js // Something like that if(process.env.NODE_ENV === 'debug'){ setDebugLevel(1) }
over 4 years ago · Santiago Trujillo Relatório

0

Si enfrenta este problema y está utilizando un paquete web, puede obtener los datos de process deseados inyectados en el paquete del cliente utilizando DefinePlugin dentro de su webpack.config.js .

En el siguiente ejemplo, muestro cómo agregar varias cosas al objeto process.env para que estén disponibles en el navegador:

  1. todas las variables de entorno dentro .env usando la biblioteca dotenv
  2. el valor de NODE_ENV , que es 'development' o 'production'

ejemplo de trabajo

 # .env API_KEY=taco-tues-123 API_SECRET=secret_tacos
 // webpack.config.js const dotenv = require('dotenv').config({ path: __dirname + '/.env' }) const isDevelopment = process.env.NODE_ENV !== 'production' module.exports = { plugins: [ new webpack.DefinePlugin({ 'process.env': JSON.stringify(dotenv.parsed), 'process.env.NODE_ENV': JSON.stringify(isDevelopment ? 'development' : 'production'), }), ].filter(Boolean), }
 // Within client side bundle (React) // src/App.jsx console.log(process.env) // {API_KEY: "taco-tues-123", API_SECRET: "secret_tacos"} console.log(process.env.NODE_ENV) // development

Tenga en cuenta que console.log(process.env) solo tiene los valores del archivo .env y que NODE_ENV no forma parte del objeto process.env .

En el siguiente ejemplo, muestro cómo estaba tratando de inyectar el objeto process.env que me llevó a este desbordamiento de pila. También incluyo un punto destacado de la documentación del paquete web sobre por qué el siguiente código no funcionaba.

ejemplo roto

 module.exports = { plugins: [ new webpack.DefinePlugin({ 'process.env': { ...dotenv.parsed, 'NODE_ENV': JSON.stringify(isDevelopment ? 'development' : 'production') } }), ].filter(Boolean), }
 // Within client side bundle (React) // src/App.jsx console.log(process.env) // Uncaught ReferenceError: taco is not defined console.log(process.env.NODE_ENV) // development

Del paquete web DefinePlugin docs :

Advertencia Al definir valores para el proceso, prefiera

'process.env.NODE_ENV': JSON.stringify('production')

terminado

process: { env: { NODE_ENV: JSON.stringify('production') } }

El uso de este último sobrescribirá el objeto de proceso, lo que puede romper la compatibilidad con algunos módulos que esperan que se definan otros valores en el objeto de proceso.

!¡Advertencia!

Inyectar dotenv.parsed en el paquete del cliente como se describe expondrá estos secretos al cliente. Para fines de desarrollo, no es un gran problema, pero en un entorno de producción implementado, cualquier contraseña o clave de API privada será visible para cualquiera que las busque.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda