🌏

Did you mean to set the 'moduleResolution' option to 'nodenext', or to

2023/10/18に公開

はじめに

node.jsでTypeScriptを使っていたので、dotenvを使用して環境変数を読み込もうとしたときに、表題のエラーが出ました。
調べてもぱっとすぐに日本語の記事が出てこなかったため、備忘録も兼ねてここに残しておきます。

解決方法

tsconfig.jsonのcompilerOptionに下記設定を追加

{
    "compilerOptions": {
        // 他の設定
        "moduleResolution": "node"
    }
}

エラーの原因

tsconfig.jsonの設定でtargetを以降を設定している場合、moduleResolutionがデフォルトでnodeに設定されていないことが原因だったようです。
そのため、明示的にmoduleResolutionにnodeを設定してあげることで解決することができました。

エラーが発生したときのtsconfig.jsonはざっくり下記のような感じ

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "skipLibCheck": true,
  }
}

下記のような感じに修正することでエラー解消

{
  "compilerOptions": {
    "target": "ESNext",
    /* Modules */
    "module": "ESNext",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    /* Type Checking */
    "strict": true,
    "skipLibCheck": true,
    "moduleResolution": "node" // ここを追加
  }
}

参考

TypeScriptのissues

GitHubで編集を提案

Discussion