[TypeScript] “Uncaught ReferenceError: exports is not defined” というエラーの解消方法

JavaScript

tsファイルをコンパイルしたjsファイルで”Uncaught ReferenceError: exports is not defined” というエラーが発生する時の解消方法について説明します。初心者による自分用のメモなので参考程度にしてください。

広告

エラーの原因は?

以下の部分でエラーが発生していました。

Object.defineProperty(exports, "__esModule", { value: true });

このエラーの原因は、ES ModulesではなくCommonJSでコンパイルされていることによります。

エラーの解消方法

tsconfig.jsonを編集します。tsconfig.jsonファイルがない場合は、プロジェクトのルートディレクトリで、以下のコマンドを実行します。

npx tsc --init

次のように書き換えます。

"module": "commonjs",
↓
"module": "ES6", 

以下のコマンドでtsファイルをjsファイルにコンパイルします。

tsc

これで、プロジェクト内の全てのtsファイルがjsファイルにコンパイルされます。

メモ: 以下のようなコマンドでは、なぜかCommonJSのjsファイルになってしまいました。原因はよくわかっていません。

tsc index.ts

それでも改善しない時は、Webブラウザをスーパーリロード(Chrome: Ctrl + F5)してください。

おわりに

繰り返しになりますが、初心者による自分用のメモなので、参考程度にしてください。

広告