找不到模块 ‘internal/modules/cjs/loader.js’ [已解决]

找不到模块 ‘internal/modules/cjs/loader.js’

Cannot find module ‘internal/modules/cjs/loader.js’

解决Cannot find module ‘internal/modules/cjs/loader.js’的错误:

  1. 确保将节点命令指向文件系统上存在的文件。
  2. 删除您的node_modulespackage-lock.json文件并重新安装您的依赖项。
  3. 重新启动您的 IDE。

找不到模块 cjs 加载程序

确保指定的文件路径是正确的

您需要检查的第一件事是您运行的node命令指向一个存在的文件。

例如,如果您运行node src/index.js,请确保路径
src/index.js指向现有文件。

如果将node命令指向不存在的文件,则会发生错误。

解决错误的一种方法是在您尝试运行的文件旁边打开终端。

如果您在同一目录中打开您的终端,您可以运行您的文件
node file_name.js,例如,node index.js假设您的文件名为
index.js

node file_name.js

在同一目录下运行节点命令

删除您的 node_modules 并重新安装您的依赖项

如果错误未解决,请尝试删除您的node_modules
package-lock.json(不是
package.json)文件,重新运行npm install并重新启动您的 IDE。

bash如果您使用的是 macOS 或 Linux,请在或中发出以下命令zsh

# for macOS or Linux rm -rf node_modules rm -f package-lock.json rm -f yarn.lock # 👇️ clean npm cache npm cache clean --force # 👇️ install packages npm install

如果您使用的是 Windows,请在 CMD 中发出以下命令。

# 👇️ (Windows) delete node_modules and package-lock.json rd /s /q "node_modules" del package-lock.json del -f yarn.lock # 👇️ clean npm cache npm cache clean --force # 👇️ install packages npm install

如果错误仍然存​​在,请确保重新启动 IDE和开发服务器。VSCode 经常出现故障并需要重启。

项目路径不应包含特殊字符

确保您的项目路径不包含哈希#符号或您的操作系统可能无法解决的任何其他特殊字符。

例如,不要使用类似my-folder#3/my-project/my-file.js(包含哈希#)的路径。

目录路径中的特殊字符可能会导致无法找到模块 loader.js 错误。

确保路径中的所有目录都不包含特殊字符,例如
$&符号。

安装缺少的依赖项

如果您的错误消息包含包名称,例如
Cannot find module ‘X’,这意味着您必须通过运行来安装指定的包npm install package-name

npm install package-name

确保package-name用错误消息中的包名称替换占位符。

验证你是否安装了 Node.js

如果错误仍未解决,请打开终端并通过运行以下命令检查是否安装了 Node.js:

node -v

验证节点已安装

如果你得到一个版本号,你已经安装了 Node.js,否则通过访问官方Node.js 页面安装它。

您还可以使用 NVM 包安装和管理您的 Node.js 版本:

尝试自动完成路径

当您运行node命令并向其传递路径时,请尝试使用Tab密钥自动完成您尝试运行的模块的路径。

自动完成路径

如果在开始键入模块路径时没有自动完成,则路径可能不正确。

指向您尝试运行的模块的路径是相对于您打开终端的目录的。

在包含您尝试运行的文件的目录中打开您的终端,然后直接将文件名传递给节点命令,例如node index.js.

打开您要运行的文件旁边的终端

如果您在尝试使用该命令运行文件时遇到错误node,请尝试在与您尝试运行的文件相同的目录中打开您的终端。

例如,在 Windows 上

  1. 在资源管理器中打开包含该文件的目录。

  2. 在资源管理器中按下Shift并右键单击。

打开powershell根目录

  1. 单击“在此处打开 PowerShell 窗口”。

  2. 运行node my_file.js命令。

node my_file.js

在 macOS 和 Linux 上:

  1. 在资源管理器中打开包含该文件的目录。
  2. 右键单击并单击“在终端中打开”

点击打开终端 macos linux

  1. 如果您没有看到“在终端中打开”选项,请右键单击并按E键盘上的。

  2. 运行node my_file.js命令。

node my_file.js

在 IDE 中的项目根目录中打开终端

解决错误的另一种方法是在 IDE(例如 Visual Studio Code)的项目根目录中打开终端。

此解决方案假定您尝试运行的文件位于package.json项目的根目录(您的文件所在的位置)中。

您可以按键盘上的 CTRL + ` (反引号)打开 Visual Studio 代码终端。

您还可以在 Visual Studio Code 中打开终端,方法是按下然后键入“View: Toggle Terminal”。 CTRL+Shift+P

打开vscode终端

在项目的根目录中打开终端后,运行命令
node my_file.js

node my_file.js

如果您需要在当前打开的文件的目录中打开您的 VS Code 终端,请单击
以下文章

使用“在集成终端中打开”选项

解决错误的另一种方法是:

  1. 在 VSCode 中打开您的项目。
  2. 右键单击项目的根目录(包含文件的目录package.json)。

vscode 在集成终端中打开

  1. 如上图所示,单击“在集成终端中打开” 。

  2. 发出node my_file.js命令。

node my_file.js

确保右键单击包含您要运行的文件的文件夹。

常见错误原因

解决 Cannot find module ‘internal/modules/cjs/loader.js’ 的错误有多种原因:

  1. node命令指向不存在的文件。
  2. #包含操作系统无法解析的特殊字符或符号的项目路径。
  3. 有一个有问题的node_modules文件夹。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: