Typescript プロジェクト (ライブラリ) の型宣言をコードのトランスパイルとバンドルと共に発行する最も効率的な方法は何ですか?
私はwebpack、ts-loader、fork-ts-checker-webpack-plugin を使用しています。
1 つのビルド サイクル (ビルド コマンド) で取得しようとしている:
- ライブラリの開発バージョン (非縮小、インライン ソース マップなど)
- ライブラリの prod バージョン (縮小 + 別のソース マップ ファイル)
- 型宣言
最初の 2 つのオプションは、fork-ts-checker-webpack-plugin でうまく機能します。スレッド・ローダーとキャッシュ・ローダーをミックスに投入すると、状況はさらに良くなります。ただし、それらが機能する方法では、.d.ts ファイルを発行することはできません。
だから私は、そのようなファイルを発行するための最良の方法は何かを理解しようとしています.
今私が見るオプション:
tsc
コードのバンドルの最後に使用します。spawnSync
たとえば、で実行します。emitDeclarationOnly
モードで webpack を排他的に実行する別の webpack 構成オブジェクトを作成します。- で ts-loader を実行します
{transpileOnly: false, happyPackMode: false}
が、それはスレッドを使用するという目標を無効にします
一般的に何が速いでしょうか?別のアプローチはありますか?
当分の間、うまくいくように思われる私自身の答え:
webpack.config.jsで、webpack 構成をエクスポートする部分の上に、次を追加します (必要に応じて引数を微調整します)。
spawn("tsc", ["-p", "src", "--emitDeclarationOnly", "--declaration", "--declarationDir", "dist/@types", "--skipLibCheck"]);
このコードは子プロセスを生成し、webpack が実行しようとしている処理と並行して実行されます。そのため、webpack は Typescript の型についてまったく心配する必要がなくなりました。