Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

78
Vistas
DefinePlugin no reemplaza var cuando se usa "process.env" en la misma línea

Estoy usando webpack.DefinePlugin con una configuración realmente simple para configurar una var de cliente frente a servidor:

 new webpack.DefinePlugin({ __CLIENT__: JSON.stringify(false), })

Cuando ejecuto esto sobre el siguiente archivo, solo reemplaza uno de los dos usos de __CLIENT__ :

 export const CLIENT = __CLIENT__; export const processEnv = __CLIENT__ ? null : process.env; // === compiles to the following: ===> export const CLIENT = false; export const processEnv = __CLIENT__ ? null : process.env; // __CLIENT__ doesn't get replaced.

Cuando cambio la segunda línea para que tenga otra cosa que no sea process.env, funciona bien.

 export const CLIENT = __CLIENT__; export const processEnv = __CLIENT__ ? null : 'works!'; // === compiles to the following: ===> export const CLIENT = false; export const processEnv = false ? null : 'works!'; // __CLIENT__ gets replaced.

Puedo solucionar este problema de manera bastante trivial guardando primero __CLIENT__ en alguna otra variable como la siguiente, pero me hace desconfiar por completo de webpack.DefinePlugin para usos futuros.

 export const CLIENT = __CLIENT__; export const processEnv = CLIENT ? null : process.env; // === compiles to the following: ===> export const CLIENT = false; export const processEnv = false ? null : process.env; // Works, compiles fine.

Quizás aún más extraño, parece un paquete web. webpack.DefinePlugin se preocupa por el valor que estoy configurando. Esta compilación correctamente:

 new webpack.DefinePlugin({ __CLIENT__: JSON.stringify(true), // Instead of false }) ... // Same code as initial example: export const CLIENT = __CLIENT__; export const processEnv = __CLIENT__ ? null : process.env; // === compiles to the following: ===> export const CLIENT = true; export const processEnv = true ? null : 0; // Works, compiles fine.

¿Por qué a webpack.DefinePlugin importa cuál es mi valor de reemplazo? ¿Estoy haciendo algo mal? ¿Hay alguna otra configuración que deba cambiar?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda