繁体   English   中英

在 typescript 库项目中组织 NPM 模块导出的最佳实践?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM