[英]Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'express' imported from F:\Document\My Project\NODE JS\Sample 1\tinder-backend\server.js
[英]Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'build\app' imported from build\server.js
我在节点项目中使用打字稿。 为了让事情简单明了,项目结构是这样的:
--src
|-- server.ts
|-- app.ts
--build
|-- server.js
|-- app.js
服务器.ts:
import { app } from "./app";
const port = process.env.PORT || 5000;
app.listen(port, () => {
console.log(`Server listens on 127.0.0.1:${port}`);
});
应用程序:
import express, { Express } from "express";
import bodyParser from "body-parser";
import { routes } from "./routes/index";
const app: Express = express();
app.use(bodyParser.json());
app.use("/", routes);
export {
app,
};
tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "es2015",
"outDir": "./build",
"rootDir": "./src",
"strict": true,
"moduleResolution": "node",
"esModuleInterop": true
}
}
包.json:
"scripts": {
"build": "tsc",
"start": "nodemon build/server",
"test": "jest"
},
"type": "module",
.
.
.
我执行npm run build
然后我运行npm start
,我收到这个错误:
internal/process/esm_loader.js:74
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\Users\x\Desktop\projects\done_list\build\app' imported from C:\Users\x\Desktop\projects\done_list\build\server.js
at finalizeResolution (internal/modules/esm/resolve.js:270:11)
at moduleResolve (internal/modules/esm/resolve.js:667:10)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:778:11)
at Loader.resolve (internal/modules/esm/loader.js:85:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:229:28)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:51:40)
at link (internal/modules/esm/module_job.js:50:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
我该如何解决?
操作系统:Windows 10
节点:14.9.0
我通过从 package.json 中删除"type": "module"
并更新 tsconfig.json 解决了这个问题:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "./build",
"rootDir": "./src",
"strict": true,
"moduleResolution": "node",
"esModuleInterop": true
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.