TypeScript 找不到导入的模块。

4

我看到很多相关的问题,但是没有一个答案适用于我的场景。在一个Node.js应用程序(Node.js版本v13.5.0)中,我有两个文件start.tsapp.ts,它们位于根目录下,它们如下所示:

start.ts:

import app from './app';

console.log(app);

app.ts:

const app = {};
export default app;

tsconfig.json:

{
  "compilerOptions": {
    "allowJs": true,
    "baseUrl": ".",
    "esModuleInterop": true,
    "lib": ["esnext", "es2015"],
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "./build",
    "pretty": true,
    "resolveJsonModule": true,
    "sourceMap": true,
    "target": "es6"
  },
  "include": ["start.ts", "app.ts", "src/**/*.ts"],
  "exclude": ["node_modules", "build"]
}

但是当我尝试使用ts-node运行start.ts时,出现了以下错误:
Error: Cannot find module /<project_directory>/app imported from /<project_directory>/start.ts
    at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:96:13)
    at Loader.resolve (internal/modules/esm/loader.js:72:33)
    at Loader.getModuleJob (internal/modules/esm/loader.js:156:40)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:42:40)
    at link (internal/modules/esm/module_job.js:41:36)

我也尝试过在导入时添加文件扩展名,但是这样会出现未知的文件扩展名“.ts”错误。看起来我不需要类型定义,因为应用程序只是一个简单的对象,但是它为什么在找模块时出现问题呢?谢谢。
1个回答

4

看起来我找到了原因,是因为在package.json中添加了"type": "module"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接