我正在开发一个打字稿模块库项目。我在 package.json 中配置了 main index.ts,所有外部导出都发生在其中。我有相当复杂的内部模块需要导出,为了更好地组织事情,我尝试了命名空间。但这会导致库用户使用点进行导入。例如,
import { Shape } from 'mylib';
let triangle = new Shape.Triangle();
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的东西。
import { Triangle } from 'mylib/shape';
Run Code Online (Sandbox Code Playgroud)
如何导出以便实现斜线路径导入?
您必须创建自己的库结构并从每个级别的索引导出。例如,如果您希望将库命名为“MyLib”,那么结构应如下所示:
- Public
- Src
- MyLib
|- MyLibContent
|- ExampleComponentFolder
|- index.ts ( export * from './ExampleComponentFolder' )
|- index.ts ( export * from './MyLibContent' )
Run Code Online (Sandbox Code Playgroud)
有了这个,您现在可以在 Src 中拥有一个使用 MyLib 的文件,就像任何其他库一样,如下所示:
-- Src
|- MyComponent.tsx
import {Triangle } from 'MyLib' // or if you define as lib '@MyLib'
export const MyComponent = () => {
return <Triangle/>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |