我正在用 Typescript 编写一个库包以发布到 npm
注册表,这样它就可以被其他各种项目使用。
我已经关注了 publishing doc确保 --declaration
选项对于 tsc
为真,这样类型定义也会在 *.d.ts
文件中导出。
我的问题是现在这样的导出分散在不同的文件夹中,我的包的消费者正在导入它们,如下所示。
import { FooType } from 'my-test-pacakge/dist/src/foo/types';
import { BarInterface } from 'my-test-package/dist/src/foo/bar';
我想知道这是否可以接受,因为它看起来很乱。我是否应该编写自己的声明文件以更清晰地组织它们?
类似问题的现有答案建议 exporting the API through a general index.ts file .这对我来说听起来很合理,但我只是想知道直接从 dist
文件夹导入是否被认为是不好的做法?
最佳答案
大多数包都倾向于从 1 个导出点导出,这样您的库的用户就不需要知道任何关于您的包的目录结构。
import { FooType, BarInterface } from 'my-test-package'.
额外的好处是您可以在不影响最终用户的情况下重组您的包的内部结构,并且它清楚地描述了您打算由您的包的用户使用的项目,以及您的包的内部.
是的,我同意这是最佳做法。
有些包有额外的命名空间,mysql2
包有两个主要导出:
import { Connection } from 'mysql2';
import { Connection } from 'mysql2/promise';
但是请注意,这里没有像 dist
这样的东西。 dist
对最终用户没有意义。
关于typescript - 在 typescript 库项目中组织 NPM 模块导出的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63421058/