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

478
Views
Uso de módulos js en una aplicación web de varias páginas (compilador de cierre)

Tengo una aplicación web que contiene varias páginas con algunos archivos js de código compartido.

 - common1.js - common2.js - page1.js - page2.js - page3.js ...

Los archivos compartidos se cargan con la página 1 y, al hacer clic en un botón, la página cambia a la página 2 o la página 3. Uso Closure Compiler y cada página es un fragmento.

 --js "../common1.js" \ --chunk common1.min:1 \ --js "../common2.js" \ --chunk common2.min:1:common1.min \ --js "../page1.js" \ --chunk page1.min:1:common2.min \ --js "../page2.js" \ --chunk page2.min:1:common2.min \

Todo funciona y los fragmentos se cargan correctamente. (OPTIMIZACIONES_AVANZADAS)

Desafortunadamente, necesito comenzar a usar módulos. Refactoricé los archivos js para usar importar/exportar. El problema es que todo el código se mueve en mi punto de entrada y los otros fragmentos están vacíos.

 --compilation_level ADVANCED_OPTIMIZATIONS \ --language_out ECMASCRIPT_2021 \ --dynamic_import_alias "dynamicImport" \ --chunk_output_type "ES_MODULES" \ --dependency_mode PRUNE_LEGACY \ --entry_point "${JS_PATH}/page1.js" \

EG: la página 2 y la página 3 están vacías.

¿Qué estoy haciendo mal? La única solución que he encontrado es construir cada página individualmente. Sin embargo, dado que se comparte mucho código, la salida del archivo sería mayor ya que no se puede usar el código compartido. (Se almacena en caché, por lo que no hay tiempo de carga para ello)

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Cada archivo individual es un punto de entrada individual y debe compilar cada uno de los archivos por separado.

Si comparten código común, impórtelos en sus respectivas páginas y compile los archivos por separado.

Si necesita fragmentos separados con un único punto de entrada, intente utilizar las importaciones dinámicas. Esto creará fragmentos como esperabas.

Consulte: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#dynamic_imports

Nota: Webpack maneja los fragmentos dinámicos lo suficientemente bien. Sin embargo, no probé esto con Closure.

about 4 years ago · Juan Pablo Isaza Report
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!