Executing typescript code using ts-node gives "Cannot use import statement outside a module" error
apollo-server を実行しようとしていますが、作成したコードは TypeScript です。
コード フォルダーには、次のような tsconfig.json が含まれています。
{
"compilerOptions": {
"target": "esnext",
"lib": [
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true
},
"include": [
"server"
]
}
実行しているコマンドは以下のとおりです。
$ npx ts-node ./server/index.ts
tsconfig.json を削除すると (もちろん削除できません)、上記のコマンドは正常に機能します。実際にどの構成が問題の原因となっているのかわかりません。
-----------------------------------
解決策は見つかりましたか?
-----
@Pablo 今のところ、機能していると思われるモジュール オプションを一時的に削除しました。
-----
検索している設定は「module」:「commonjs」です。 ts-node は、nodejs 環境でコードを実行するため、そのモジュール システムを使用する必要があります。プロジェクトのデフォルトとして設定が必要な場合は、2 番目の tsconfig tsconfig.node.json を作成し、それを ts-node --project <tsconfig.json> でターゲットにすることができます。
tsconfig.node.json:
{
"extends": "./",
"compilerOptions": {
"module": "commonjs",
},
}
-----------------------------------
モジュールオプションをcommonjsに変更してみました。うまくいきませんでした。コードにes6スタイルのインポートがあります。そのためエラーがスローされます。
-----
別の tsconfig.json ファイルを提供するこの 2 番目のアプローチを試してみましょう。
-----