【问题标题】:How to debug a "Cannot find module" error in Javascript? MODULE_NOT_FOUND如何调试 Javascript 中的“找不到模块”错误? MODULE_NOT_FOUND
【发布时间】:2022-10-17 05:13:45
【问题描述】:

我有一个 Typescript 项目,其 tsconfig.json 文件当前如下所示:

{
  "compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "target": "es2020",
    "baseUrl": "src",
    "outDir": "dist",
    "declaration": false,
    "sourceMap": true,
    "esModuleInterop": true,
    "newLine": "lf",
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "strictNullChecks": true,
    "importsNotUsedAsValues": "error",
    "isolatedModules": true,
    "skipLibCheck": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "noUncheckedIndexedAccess": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "preserveConstEnums": true
  },
  "include": ["src"]
}

当我使用tsc 构建我的项目时,不会出现任何问题。但是当我使用node dist/server/index.js 运行它时,我会收到类似Cannot find module 'server/foo/bar' MODULE_NOT_FOUND 的错误。

开发人员必须使用哪些工具来尝试调试?

TypeScript 可以在编译过程中找到该模块,否则它会失败。为什么 JavaScript 找不到呢?

我怎么知道它试图在哪里寻找模块?或任何其他可以帮助开发人员弄清楚如何解决此问题的信息。

【问题讨论】:

    标签: javascript node.js typescript debugging dependencies


    【解决方案1】:

    如果您正在使用纱线及其Plug'n'Play 功能(检查您的项目根目录中是否有.pnp.cjs 文件,您的package.json 所在的位置)然后运行:

    yarn node dist/server/index.js
    

    将在节点的模块加载中包括即插即用(有关详细信息,请参阅上面的链接)并允许解析包。编译 typescript 代码时,tsc 编译器也必须在 yarn 下运行以允许解析模块,如果 tsc 正在作为来自 package.json 的脚本运行,则隐含地发生这种情况。

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 1970-01-01
      • 2015-10-28
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多