【发布时间】:2019-02-10 19:57:04
【问题描述】:
以及为 Typescript 项目(库)发出类型声明以及代码转换和捆绑的最有效方法是什么?
我正在使用 webpack、ts-loader 和 fork-ts-checker-webpack-plugin。
在一个构建周期(构建命令)中,我试图获得:
- 库的开发版本(未缩小、内联源映射等)
- 库的 prod 版本(缩小 + 单独的源映射文件)
- 类型声明
前 2 个选项与 fork-ts-checker-webpack-plugin 配合得很好。随着线程加载器和缓存加载器的混合,事情变得更好了。但是,它们的工作方式不允许发出 .d.ts 文件。
所以我想弄清楚发出此类文件的最佳方式是什么。
现在我看到的选项:
- 在代码捆绑结束时使用
tsc。例如,使用spawnSync运行它。 - 创建另一个 webpack 配置对象以在
emitDeclarationOnly模式下独占运行 webpack - 使用
{transpileOnly: false, happyPackMode: false}运行 ts-loader,但这违背了使用线程的目标
一般来说什么可能更快?还有其他方法吗?
暂时我自己的答案似乎有效:
在导出 webpack 配置的部分上方的 webpack.config.js 中,添加以下内容(调整参数以满足您的需要):
spawn("tsc", ["-p", "src", "--emitDeclarationOnly", "--declaration", "--declarationDir", "dist/@types", "--skipLibCheck"]);
这段代码将生成一个子进程并与 webpack 将要执行的任何操作并行运行。所以现在 webpack 完全不用担心 Typescript 类型了。
【问题讨论】:
标签: node.js typescript webpack ts-loader