如何使用相对路径生成单个 *.d.ts 或多个
How to produce a single *.d.ts or multiple with relative path
问题
[它只感染 typescript 库创建者]
如果代码库包含绝对路径(通过配置 tsconfig.json
和 webpack),那么打字稿编译器将生成所有具有相同绝对路径的 d.ts 文件,这些文件是无用的,因为我的 lib 消费者对他们无能为力。
解决方法
我看到的每个图书馆都在做以下其中一项:
- 正在创建自己的单个文件。d.ts 手动创建文件
- 在其代码库中使用相对路径,因此输出 d.ts 文件也包含相对路径。
显然,两种选择都很糟糕。
我想到的其他解决方案
- 正在创建一个 d.ts 文件(不会有导入)。
我找不到适用的库。
- 不确定是否可行:在 运行ning ts-loader 之前,我们需要 运行 一个神奇的 babel-plugin 通过查看 webpack-resolve 将每个绝对路径转换为相对路径-webpack.config 文件中的模块部分。
我现在的状态
我创建了一个库,它生成带有绝对路径的损坏的 d.ts 文件:
https://github.com/stavalfi/lerna-yarn-workspaces-example/tree/master/packages/x-core
index.ts:
import { z, x } from 'shalom' // problem
export default function awesomeFn(y: number): x {
return z(1)
}
export { z, x } from './shalom' . // not a problem
生成的索引。d.ts:
import { x } from './shalom'; /// GOOD - becuase I used relative
export default function awesomeFn(y: number): x;
export { z, x } from 'shalom'; /// BAD - because I used absolute
//# sourceMappingURL=index.d.ts.map .
问题
是否有任何类型的 solution/workaround 不停止使用绝对路径或手动创建我自己的单个 d.ts 文件?
如果任何 typescript 库创建者仍然有这个问题,我为 babel-plugin-module-resolver 创建了一个 Webpack 加载器,它将绝对路径转换为相对路径:
https://github.com/stavalfi/babel-plugin-module-resolver-loader
它还解决了 *.d.ts
文件具有绝对路径的问题,将它们转换为相对路径。
您可能想要订阅 to/read 此线程以获取其他解决方法:
https://github.com/Microsoft/TypeScript/issues/15479
问题
[它只感染 typescript 库创建者]
如果代码库包含绝对路径(通过配置 tsconfig.json
和 webpack),那么打字稿编译器将生成所有具有相同绝对路径的 d.ts 文件,这些文件是无用的,因为我的 lib 消费者对他们无能为力。
解决方法
我看到的每个图书馆都在做以下其中一项:
- 正在创建自己的单个文件。d.ts 手动创建文件
- 在其代码库中使用相对路径,因此输出 d.ts 文件也包含相对路径。
显然,两种选择都很糟糕。
我想到的其他解决方案
- 正在创建一个 d.ts 文件(不会有导入)。
我找不到适用的库。
- 不确定是否可行:在 运行ning ts-loader 之前,我们需要 运行 一个神奇的 babel-plugin 通过查看 webpack-resolve 将每个绝对路径转换为相对路径-webpack.config 文件中的模块部分。
我现在的状态
我创建了一个库,它生成带有绝对路径的损坏的 d.ts 文件:
https://github.com/stavalfi/lerna-yarn-workspaces-example/tree/master/packages/x-core
index.ts:
import { z, x } from 'shalom' // problem
export default function awesomeFn(y: number): x {
return z(1)
}
export { z, x } from './shalom' . // not a problem
生成的索引。d.ts:
import { x } from './shalom'; /// GOOD - becuase I used relative
export default function awesomeFn(y: number): x;
export { z, x } from 'shalom'; /// BAD - because I used absolute
//# sourceMappingURL=index.d.ts.map .
问题
是否有任何类型的 solution/workaround 不停止使用绝对路径或手动创建我自己的单个 d.ts 文件?
如果任何 typescript 库创建者仍然有这个问题,我为 babel-plugin-module-resolver 创建了一个 Webpack 加载器,它将绝对路径转换为相对路径: https://github.com/stavalfi/babel-plugin-module-resolver-loader
它还解决了 *.d.ts
文件具有绝对路径的问题,将它们转换为相对路径。
您可能想要订阅 to/read 此线程以获取其他解决方法: https://github.com/Microsoft/TypeScript/issues/15479