Javascript 如何使用webpack生成d.ts和d.ts.map文件?

Javascript 如何使用webpack生成d.ts和d.ts.map文件?,javascript,typescript,webpack,babeljs,Javascript,Typescript,Webpack,Babeljs,我找不到使用webpack生成d.ts和d.ts.map文件的方法。babel loader只生成js和js.map文件。我还需要d.ts和d.ts.map文件(我可以使用tsc命令生成),如图所示: 以下是包含所有设置的最小回购: 更多细节 我搬到了勒纳+纱线。我的一个包是core(将在其他包中使用),它是用TS和JS编写的 我正在使用webpack 4,babel loader 8用于ts到js 其他软件包正在尝试查找我的core软件包的类型定义和实现,但我只能使用webpack生成ind

我找不到使用webpack生成d.ts和d.ts.map文件的方法。babel loader只生成js和js.map文件。我还需要d.ts和d.ts.map文件(我可以使用
tsc
命令生成),如图所示:

以下是包含所有设置的最小回购:

更多细节 我搬到了勒纳+纱线。我的一个包是
core
(将在其他包中使用),它是用TS和JS编写的

我正在使用webpack 4,babel loader 8用于ts到js

其他软件包正在尝试查找我的
core
软件包的类型定义和实现,但我只能使用webpack生成
index.js
index.js.map

output: {
    path: distPath,
    filename: 'index.js',
  },
{
  "extends": "../tsconfig.settings.json",
  "compilerOptions": {
    "declaration": true,
    "declarationMap": true,
    "declarationDir": "dist",
    "rootDir": "src",
    "outDir": "dist"
  }
}
  • 当我使用
    tsc
    (没有网页)编译时,正如我在上图中所示,一切都很好
我的策略错了吗?我该怎么办


我尝试过很多生成d.ts文件的插件,但它们不起作用,也不能创建
d.ts.map
文件


我已经尝试过:
typescript声明网页包插件
npmdts网页包插件
dts捆绑网页包
@ahrakio/witty网页包声明文件
。(它们列在
core
的package.json中,因此您可以克隆并使用它)。

您可以直接调用Typescript编译器
tsc

使用
tsc--declaration
输出
.d.ts
文件,并使用
tsc--declarationMap
生成相应的映射文件

您可以在此处找到更多文档:

babel-loader
之前运行
ts-loader
就可以了

您只需要在配置中指定您想要的声明文件


如果您使用的是绝对路径,则输出的d.ts文件还将包含绝对路径,这些绝对路径是无用的,并将导致typescript编译错误

为了解决这个问题,我编写了一个插件,将绝对路径转换为相对路径:

据我所知(阅读约10分钟),babel实际上并没有编译您的tsc,它只是将其全部删除为纯js?所以它不可能为您提供类型定义?似乎你必须让网页包使用ts加载器或其他东西,然后吐出你的js文件,由巴贝尔包括。(希望更熟悉的人能更肯定地回答你的问题!)你理解得对。我不想转到
ts loader
,因为我需要babel来处理所有的代码包。我还对问题进行了编辑,以使其更清楚。我想从网页上对它们进行分类,否则我需要将所有内容编译两次…我明白。我不能帮助你这个具体的。Stav,继续GeTim我想给你发信息。@ ShanonJackson我给你打了个电话。呃,如果Babel不是因为速度的原因而编译TS的话,我就不会考虑这个编译了,我已经在这上面敲了2天了。最后添加ts加载程序成功了。谢谢。除了安装另一个加载器(ts加载器)之外,您还可以在build命令的末尾添加
'tsc'
,但是您已经配置了
ts.config
,因此它只发出如下所示的类型声明