繁体   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