繁体   English   中英

错误 [ERR_MODULE_NOT_FOUND]:找不到从 build\\server.js 导入的模块“build\\app”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM