打字稿找不到导入的模块

时间:2019-12-30 20:01:03

标签: javascript node.js typescript

我看到了很多相关的问题,但是这些答案似乎都不适合我的情况。我在node.js应用程序(节点版本v13.5.0)中有2个文件,其根目录为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”错误。由于app是一个简单的对象,因此看起来好像不需要输入,但是为什么找不到模块呢?谢谢。

1 个答案:

答案 0 :(得分:0)

好像我找到了它,是因为在package.json中我添加了"type": "module"