通过代码转译和捆绑为Typescript项目(库) 发出类型声明的最有效方法是什么?
我正在使用 webpack , ts-loader 和 fork-ts-checker-webpack-plugin 。
在一个构建周期(构建命令)中,我试图获取:
前2个选项与fork-ts-checker-webpack-plugin一起使用效果很好。通过将线程加载器和缓存加载器投入使用,事情变得更好了。但是,它们的工作方式不允许释放.d.ts文件。
所以我想找出什么是发出此类文件的最佳方法。
现在我看到的选项:
tsc
。例如,使用spawnSync
运行它。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类型。
答案 0 :(得分:0)
如果您打算通过npm
或yarn
运行webpack,则前两个步骤意味着-开发和产品构建将由webpack multiconfig处理。
然后通过npm / yarn自定义post command生成类型生成步骤,例如postbuild
(如果提供了build
脚本
"scripts": {
"postbuild": "tsc -p tsconfig.json --emitDeclarationOnly --declaration --declarationDir ./dist/@types --skipLibCheck",
"build": "webpack"
}
所有步骤都是通过执行单个命令进行的
yarn build
或
npm run build