[英]Best practice in organizing NPM module exports in a typescript library project?
我正在 Typescript 中编写一个库 package 以发布到npm
注册表,以便它可以被各种其他项目使用。
我已按照发布文档确保--declaration
选项对于tsc
是正确的,以便在*.d.ts
文件中也导出类型定义。
我现在的问题是,这些导出分散在各个文件夹中,我的 package 的消费者正在像下面这样导入它们。
import { FooType } from 'my-test-pacakge/dist/src/foo/types';
import { BarInterface } from 'my-test-package/dist/src/foo/bar';
我想知道这是否可以接受,因为它看起来很乱。 我应该编写自己的声明文件以更简洁的方式组织它们吗?
已有类似问题的答案建议通过通用 index.ts 文件导出 API 。 这对我来说听起来很合理,但我只是想知道直接从dist
文件夹导入是否被认为是不好的做法?
大多数包更喜欢从 1 个导出点导出,因此库的用户不需要了解package的目录结构。
import { FooType, BarInterface } from 'my-test-package'.
额外的好处是您可以在不影响最终用户的情况下重组 package 的内部结构,它清楚地描述了您打算由 package 的用户使用的项目以及 package 的内部项目以及 ZEFE907A8DZ03AE77A 的内部项目。
所以是的,我同意这是一个最佳实践。
有一些包有额外的命名空间, mysql2
package 有两个主要的出口:
import { Connection } from 'mysql2';
import { Connection } from 'mysql2/promise';
但请注意,这里没有类似dist
的东西。 dist
对最终用户没有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.