带斜杠路径的导出模块

jim*_*ssy 11 typescript

我正在开发一个打字稿模块库项目。我在 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)

如何导出以便实现斜线路径导入?

Kyl*_*eck 0

您必须创建自己的库结构并从每个级别的索引导出。例如,如果您希望将库命名为“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)