Rush Stackショップブログイベント
メインコンテンツへスキップ

ae-wrong-input-file-type

"ファイル形式が正しくありません。API Extractorは、コンパイラの出力を .d.ts ファイル拡張子で分析することを想定しています。"

注釈

他のツールとは異なり、API ExtractorはTypeScriptソースファイルを直接処理しません。代わりに、コンパイラによって出力され、NPMパッケージによってエクスポートされる .d.tsファイルを分析するように設計されています。この設計により、API Extractorが外部の利用者がライブラリを見るのと同じ方法でライブラリを見るようにします。また、.d.tsロールアップがツールチェーン、コンパイラのバージョン、手動で作成された入力の特定の構文の選択を保持するようにします。

その結果、mainEntryPointFilePathには .d.ts ファイル拡張子が必要であり、インポートされたすべてのモジュールも同様です。 ae-wrong-input-file-typeエラーは、不正なファイル拡張子が検出された場合に報告されます。

修正方法

ログのノイズを減らすために、ae-wrong-input-file-typeエラーは最大で1回報告されます。インポートされたパスの完全なリストを表示するには、--diagnosticsパラメータを指定してAPI Extractorを呼び出し、.ts.tsxなどの問題のあるファイル拡張子を持つファイルパスを探します。対応する.d.tsファイルではなく、そのファイルがインポートされている理由を特定しようとしてください。

ヒント

特定のファイルがインポートされている理由を特定するのが難しい場合は、--traceResolutionパラメータを指定してコンパイラを呼び出すと役立つ場合があります。

tsc --traceResolution > trace.log

これはソースファイルの依存関係グラフを報告しますが(mainEntryPointFilePathビューではなく)、それでも有益な場合があります。正確なトレースのために、プロジェクトをNPM依存関係としてインポートするセカンダリプロジェクトでコンパイラを呼び出すことができます。

一般的な問題

  • API Extractorを、コンパイラが.d.ts出力を生成する前に呼び出していませんか?ツールチェーンがAPI Extractorの呼び出し前に.d.tsファイルを書き込むようにしてください。

  • コンパイラがexample.d.tsexample.tsと同じファイルフォルダに書き込んでいませんか?これは悪い習慣です。入力ファイルと出力ファイルを分離することを検討してください。たとえば、src/{*.ts,*.tsx}lib/{*.js,*.d.ts}などです。

  • NPMパッケージの依存関係が、.d.ts宣言ファイルの代わりにTypeScriptソースファイルをエクスポートしていませんか?パッケージのメンテナに、ソースコードではなく、ビルド済みの出力を配布するという標準的な慣例に従うように依頼してください。

一時的な軽減策として、次のようなセクションをapi-extractor.jsonファイルに追加して、ae-wrong-input-file-type検証を無効にすることができます。

  "messages": {
"extractorMessageReporting": {
// Disable this validation at your own risk: Processing an incorrect file type
// may lead to other errors. Function bodies may incorrectly get emitted in the
// .d.ts rollup.
"ae-wrong-input-file-type": {
"logLevel": "none"
}
}
}

関連情報