Webpack + Babel编译typescript类库如何生成类型文件?

我正在写一个typescript + react的组件库。

打包用的是babel-loader和三个plugins: babel/preset-react、babel/preset-env、babel/preset-typescript。发现输出里不会包含d.ts类型文件

babel似乎不会读取tsconfig.json,我应该如何配置才能自动生成类型文件?还是说我应该打包后再用tsc来生成类型文件,如果是后者,如何保证生成的d.ts能和组件文件在同级目录呢

附上我的配置
image.png

我的目录层级
image.png

我希望打包出来的目录结构是这样的

dist
  Button
    index.js
    index.d.ts
  Icon
    index.js
    index.d.ts
  index.js
阅读 6.1k
2 个回答

tsconfig里把declaration选项打开试试呢,babel应该只负责翻译,额外生成的工作可能费点儿劲

https://github.com/babel/babe...

这个 Issue 里解释过这个问题了,babel 只负责把 TS 语法转换成 JS(其实就是去掉 TS 那些类型标记和声明),然后再转译 JS 成低版本,不会生成声明文件。

官方建议是只用 babel 做转译、再 tsc --emitDeclarationOnly 单独生成声明文件。社区里应该应该有第三方插件可以帮你做这件事儿,你可以自己找找。实在不行你自己写个 shell 也行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏