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

329
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
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