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

76
Visualizações
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 à 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