Búsqueda de sitios web

node.js - Necesito exportar clases para un paquete NPM


Estoy creando un paquete NPM y estoy buscando la mejor manera de exportar mis clases.

En este momento, estoy usando esto:

import {Swan} from './Swan';
import {Route, Router} from './Router';
import {View, TemplateView, IView} from './views';

export { Route, Router, Swan, View, TemplateView, IView };

Esto funciona. Lo único es que, por supuesto, cada vez que agrego una nueva clase, tengo que actualizar la declaración de exportación.

¿Hay alguna manera de exportar todas las clases en todos los archivos que especifico sin tener que actualizar la declaración de exportación aquí?

Respuesta #1

¿Hay alguna manera de exportar todas las clases en todos los archivos que especifico sin tener que actualizar la declaración de exportación aquí?

No existe un "exportar todo" automático ni exportar todas las clases en Javascript.

Pero, podrías cambiar cómo defines tus clases para que sean parte de un objeto interno y solo exportes ese objeto.

 const myExports = {
      TemplateView: class TemplateView {
          ...
      },
      iView: class iView {
         ...
      }

 };

 export default myExports;

Cuando agregas una nueva clase a esta estructura, automáticamente se convierte en parte de las exportaciones.

Por otro lado, personalmente no veo cuál es el gran problema en mantener la lista de exportación cuando agregas un nuevo elemento al módulo que deseas exportar. Se SUPONE que las exportaciones deben ser una lista reflexiva de cosas que solo contenga los elementos que necesitan ser exportados y no contenga otras funciones utilizadas localmente como parte de la implementación. La única manera de que pueda ser una lista reflexiva es si no es automática.