Ошибка [ERR_MODULE_NOT_FOUND]: не удается найти модуль ‘build app’, импортированный из buildserver.js

#javascript #node.js #typescript

#javascript #node.js #typescript

Вопрос:

Я использую typescript в проекте узла. Чтобы упростить и прояснить ситуацию, структура проекта выглядит следующим образом:

     --src
      |-- server.ts
      |-- app.ts
    --build
      |-- server.js
      |-- app.js
  

server.ts:

 import { app } from "./app";

const port = process.env.PORT || 5000;

app.listen(port, () => {
  console.log(`Server listens on 127.0.0.1:${port}`);
});
  

app.ts:

 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
  }
}
  

package.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:UsersxDesktopprojectsdone_listbuildapp' imported from C:UsersxDesktopprojectsdone_listbuildserver.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

Ответ №1:

Я решил проблему, удалив "type": "module" из package.json и обновив tsconfig.json:

 {
  "compilerOptions": {
    "target": "es6", 
    "module": "commonjs",
    "outDir": "./build",
    "rootDir": "./src",
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true
  }
}
  

Комментарии:

1. Привет, приятель! Это не отвечает на суть вопроса.