我正在开发一个用 Typescript 编写的 NPM 包,在编译要发布的库时,我无法解决模块解析问题。
在整个项目中,我一直在使用非相对导入来避免../../../
. 但是,我在打字稿文档中读到应该在项目中使用相对导入。
相对导入是相对于导入文件解析的,不能解析为环境模块声明。你应该为你自己的模块使用相对导入,保证在运行时保持它们的相对位置。
可以相对于 baseUrl 或通过路径映射来解析非相对导入,我们将在下面介绍。它们还可以解析为环境模块声明。导入任何外部依赖项时使用非相对路径。
我不想牺牲漂亮、整洁的导入来支持相对导入,但我不确定如何设置编译器设置以使其正常工作。运行测试时,我指定NODE_PATH
以解析模块,但这不适用于后编译。
我希望能够使用非相对导入来编写文件,但是以某种方式对它们进行转换,以便dist/
文件可以解析导入。
该项目托管在github 上。
相关问题是我的index.d.ts
文件dist/
夹中的文件如下所示:
import { Emitter } from 'emitter';
import { Schema } from 'migrations';
import { Model, model, relation } from 'model';
import { Builder } from 'query';
export { Builder, Emitter, Model, model, relation, Schema };
但是所有模块都有模块无法解决的错误。如何以当前形式保留这些导入,但在构建时以某种方式对其进行转换,以便在发布 npm 包时,可以正确解析模块。