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