🐕
esbuild の生成物の先頭に @ts-nocheck をくっつけるプラグイン
esbuild でバンドルした結果の先頭行に @ts-nocheck
コメントを追加する小さな esbuild プラグインを書いたのでメモとして残しておきます。
そんなプラグインいつ欲しくなるんだよという感じですがほしくなってしまったので仕方なし。
ビルドが終わったタイミングで fs.readFileSync
でビルド結果の中身を読み込んで // @ts-nocheck
をくっつけて fs.writeFileSync
で同じ場所に書き込んでいます。
もっとスマートにビルド結果の中身をいじる方法を知っている人がいたら教えて下さい。
import fs from "node:fs";
const tsNoCheck = "// @ts-nocheck\n";
export default function esbuildPluginTsNocheck() {
return {
name: "ts-no-check",
setup(build) {
const options = build.initialOptions;
const { outfile } = options;
build.onEnd(() => {
if (!fs.existsSync(outfile)) {
throw new Error(`${outfile} not exists`);
}
const text = fs.readFileSync(outfile, "utf8");
fs.writeFileSync(outfile, tsNoCheck + text);
});
},
};
}
Discussion