簡體   English   中英

使用 ts-node 執行 typescript 代碼會出現“無法在模塊外使用導入語句”錯誤

[英]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 (我當然不能這樣做),上面的命令可以正常工作。 我不確定哪個配置實際上導致了問題。

您正在搜索的設置是"module": "commonjs" 由於 ts-node 在 nodejs 環境中執行你的代碼,你必須使用它的模塊系統。 如果您需要將您的配置作為項目的默認配置,您可以創建第二個 tsconfig tsconfig.node.json並使用ts-node --project <tsconfig.json>定位它

tsconfig.node.json

{
  "extends": "./",
  "compilerOptions": {
    "module": "commonjs",
  },
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM