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

335
Views
¿Qué es un "patrón de subruta" en NodeJS?

Mientras leía un blog sobre las novedades de Angular 13, encontré la siguiente declaración:

Las versiones de Node.js anteriores a v12.20 ya no son compatibles debido a que los paquetes de Angular utilizan la función de exportación de paquetes de Node.js con patrones de subruta .

Entonces, me pregunto, ¿qué significa "patrones de subtrayecto"? Los ejemplos serán más que bienvenidos aquí.

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

0

Cito de nodejs.org :

Patrones de subruta

Agregado en: v14.13.0, v12.20.0

Para paquetes con una pequeña cantidad de exportaciones o importaciones, recomendamos enumerar explícitamente cada entrada de subruta de exportaciones. Pero para los paquetes que tienen una gran cantidad de rutas secundarias, esto podría causar problemas de mantenimiento y de sobrecarga de package.json .

Para estos casos de uso, se pueden usar patrones de exportación de rutas secundarias en su lugar:

 // ./node_modules/es-module-package/package.json { "exports": { "./features/*": "./src/features/*.js" }, "imports": { "#internal/*": "./src/internal/*.js" } }

* los mapas exponen subrutas anidadas ya que es solo una sintaxis de reemplazo de cadenas.

Todas las instancias de * en el lado derecho se reemplazarán con este valor, incluso si contiene algún separador /.

 import featureX from 'es-module-package/features/x'; // Loads ./node_modules/es-module-package/src/features/x.js import featureY from 'es-module-package/features/y/y'; // Loads ./node_modules/es-module-package/src/features/y/y.js import internalZ from '#internal/z'; // Loads ./node_modules/es-module-package/src/internal/z.js

Este es un reemplazo estático directo sin ningún manejo especial para las extensiones de archivo. En el ejemplo anterior, pkg/features/x.json se resolvería en ./src/features/x.json.js en la asignación.

La propiedad de que las exportaciones sean estáticamente enumerables se mantiene con los patrones de exportación, ya que las exportaciones individuales de un paquete se pueden determinar tratando el patrón de destino del lado derecho como un globo terráqueo ** en la lista de archivos dentro del paquete. Debido a que las rutas de node_modules están prohibidas en los destinos de exportación, esta expansión depende solo de los archivos del paquete en sí.

Para excluir subcarpetas privadas de patrones, se pueden usar objetivos null :

 // ./node_modules/es-module-package/package.json { "exports": { "./features/*": "./src/features/*.js", "./features/private-internal/*": null } }
 import featureInternal from 'es-module-package/features/private-internal/m'; // Throws: ERR_PACKAGE_PATH_NOT_EXPORTED import featureX from 'es-module-package/features/x'; // Loads ./node_modules/es-module-package/src/features/x.js
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!