【TypeScript】error TS5055: Cannot write file ‘xxx.d.ts’ because it would overwrite input file.
こんにちは、フリーランスエンジニアの太田雅昭です。
tscコマンドのエラー
tscコマンドでいつも通りTypeScriptからJavaScriptに変換しようとしたのですが、エラーで止まりました。
error TS5055: Cannot write file 'xxx.d.ts' because it would overwrite input file.
これは今までも何度か出たエラーで、大体はtsconfigを以下のようにすると直ります。
{
"compilerOptions": {
...
"rootDir": "./src",
"outDir": "./dist",
...
},
"include": [
"src"
],
"exclude": [
"dist",
],
}
ところが今回、なぜかこれで直らなかったためChatGPTに聞きました。しかし解決せず。
distファイルをimportしていた。
今回の原因は、distファイルをインポートしていたことが原因でした。具体的には、同じプロジェクトにあるsrcファイルから、distファイルを参照していました。
import {xx} from "@yyy/dist/zzz"
もちろん他プロジェクトからの参照なら問題ないのですが、おそらく同じプロジェクトで参照していたことで、tsc変換時に不都合があったようです。これを以下のようにすることで解決しました。
import {xx} from "../zzz"
小話
最近一日の終わりにちょっとだけお酒を飲み始めました。ポテチと一緒に飲む酎ハイ、たまらんです。