Estoy tratando de escribir una biblioteca con TypeScript y Parcel. Todo está bien hasta que intento importarlo en otra aplicación.
En la biblioteca hay un archivo index.ts que reúne los componentes y los exporta:
import Component1 from "./components/Component1"; import Component2 from './components/Component2'; export { Component1, Component2, }; Después de compilar, obtengo index.js , index.css e index.d.ts . En el archivo index.d.ts , la export se ha convertido a export default :
export default Component1; export default Component2; Enlacé mi biblioteca con yarn a mi aplicación de consumidor. Cuando quiero import { Component1 } from 'myLibrary'; Recibo el siguiente error: Module '"myLibrary"' has no exported member 'Component1'. Did you mean to use 'import Component1 from "myLibrary"' instead? . Ahora, cuando intento importar el valor predeterminado (como está en index.d.ts ), import Component1 from 'myLibrary'; el error cambia a: Attempted import error: 'myLibrary' does not contain a default export (imported as 'Component1').
¿Por qué ocurre la conversión de export y cómo puedo evitar esto?
EDITAR: la biblioteca se construye y empaqueta por paquete, el consumidor se maneja mediante scripts de reacción. Después de la sugerencia del Sr. Manhattan:
índice.ts:
export {Component1} from "./components/Component1"; export {Component2} from './components/Component2';index.d.ts generado:
export {Component1} from "./components/Component1"; export {Component2} from './components/Component2';consumidor:
function App() => { render( <> <Component1 /> <Component2 /> </> ) };Error:
./src/App.tsx [1] Attempted import error: 'Component2' is not exported from 'myLibrary'.puedes exportar directamente:
export Component1 from "./components/Component1"; export Component2 from './components/Component2';Está intentando volver a exportar una exportación con nombre que no existe. Intente volver a exportar el valor predeterminado en su lugar:
export { default as Component1 } from './components/Component1'; export { default as Component2 } from './components/Component2';