Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

96
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!