我正在尝试用TypeScript和Parcel编写一个库。一切正常,直到我尝试将它导入到另一个应用程序中。
库中有一个index.ts文件,它收集组件并将其导出:
import Component1 from "./components/Component1";
import Component2 from './components/Component2';
export {
Component1,
Component2,
};在构建之后,我得到了index.js、index.css和index.d.ts。在index.d.ts文件中,export已转换为export default
export default Component1;
export default Component2;我将我的库与yarn链接到我的消费者应用程序。当我想要import { Component1 } from 'myLibrary';时,我得到了以下错误:Module '"myLibrary"' has no exported member 'Component1'. Did you mean to use 'import Component1 from "myLibrary"' instead?。现在,当我尝试导入default (就像在index.d.ts中一样)时,import Component1 from 'myLibrary';错误变为:Attempted import error: 'myLibrary' does not contain a default export (imported as 'Component1').
为什么会发生export转换,我如何才能避免这种情况?
编辑:库由parcel构建和捆绑,使用者由react脚本处理。在Mr.Manhattans建议之后:
index.ts:
export {Component1} from "./components/Component1";
export {Component2} from './components/Component2';生成的index.d.ts:
export {Component1} from "./components/Component1";
export {Component2} from './components/Component2';消费者:
function App() => {
render(
<>
<Component1 />
<Component2 />
</>
)
};错误:
./src/App.tsx
[1] Attempted import error: 'Component2' is not exported from 'myLibrary'.发布于 2021-10-26 11:36:17
您可以直接导出:
export Component1 from "./components/Component1";
export Component2 from './components/Component2';发布于 2021-10-27 07:11:20
您正在尝试重新导出一个不存在的命名导出。请尝试重新导出默认值:
export { default as Component1 } from './components/Component1';
export { default as Component2 } from './components/Component2';https://stackoverflow.com/questions/69722250
复制相似问题