错误:找不到(模块路径)的有效导出 main

Dev*_*dog 5 backend node.js npm node-modules koa

我正在 Mac 上重新整理文档,不小心损坏了我正在构建的应用程序。我注意到 package.json 已与 router.js 一起删除。我将这两个文件以及 package.json 中的 koa 依赖项添加回来进行测试。

控制台错误

Error: No valid exports main found for '/Users/devunderdog/Work space/Fantasy_Sports_Manager_Server/node_modules/koa'

at resolveExportsTarget (internal/modules/cjs/loader.js:611:9)
at applyExports (internal/modules/cjs/loader.js:492:14)
at resolveExports (internal/modules/cjs/loader.js:541:12)
at Function.Module._findPath (internal/modules/cjs/loader.js:643:22)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:941:27)
at Function.Module._load (internal/modules/cjs/loader.js:847:27)
at Module.require (internal/modules/cjs/loader.js:1016:19)
at require (internal/modules/cjs/helpers.js:69:18)
at Object.<anonymous> (/Users/devunderdog/Work space/Fantasy_Sports_Manager_Server/index.js:1:13)
at Module._compile (internal/modules/cjs/loader.js:1121:30) {

  code: 'MODULE_NOT_FOUND'
}
Run Code Online (Sandbox Code Playgroud)

索引.JS

const Koa = require('koa');
const app = new Koa();
Run Code Online (Sandbox Code Playgroud)

这是 index.js 中的“koa” require 尝试获取模块的地方。 模块路径不正确

module "/Users/devunderdog/Library/Caches/typescript/3.9/node_modules/@types/koa/index"
Run Code Online (Sandbox Code Playgroud)

包.JSON

   {
      "name": "fantasy_sports_manager_server",
      "version": "1.0.0",
      "description": "A fantasy sports management system designed to help you pick the best players based on their return on investment.",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "Lello De Luca",
      "license": "ISC",
      "dependencies": {
        "koa": "^2.13.0"
      }
    }
Run Code Online (Sandbox Code Playgroud)

已经尝试过

  • 删除 /node_modules/ 和 npm install
  • 将 NodeJS 更新至 v14.5.0
  • 从 package.json 中删除和添加所有必需的依赖项

预先感谢您的任何努力。如果您需要更多代码来重现,请告诉我。

德文德狗

Dev*_*dog 2

我设法解决了这个问题。

我相信我可能错误地移动了 root/.nvm 目录,卸载并重新安装已修复该问题。错误消失了。

如果有人出现问题,请告诉我,我们可以尝试一起重现并解决问题。