内部/模块/cjs/loader.js:582 抛出错误

Posted

技术标签:

【中文标题】内部/模块/cjs/loader.js:582 抛出错误【英文标题】:internal/modules/cjs/loader.js:582 throw err 【发布时间】:2019-05-01 21:59:48 【问题描述】:

我收到以下控制台错误。 Error : Cannot find module

这是我在控制台中遇到的完整错误。我该怎么办?

internal/modules/cjs/loader.js:582
    throw err;
    ^

Error: Cannot find module 'C:\Users\User\Desktop\NodeJsProject\app.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
    at Function.Module._load (internal/modules/cjs/loader.js:506:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
    at startup (internal/bootstrap/node.js:285:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)

【问题讨论】:

caseyjustus、ttfreeman、Bishwajit Vikram、Muhammad Tahir、Andrew Koper 的答案都有一个共同点,即当在 一个不支持的文件上调用 node 时会出现问题中的错误存在.(!) -- 考虑阅读https://***.com/questions/53545800#62740853. 我遇到了同样的问题。我将 webpack-dev-server 降级到 2.5.1 版本。现在一切正常。 我通过使用 yarn 而不是 npm 解决了这个问题 如果使用nvm run 而不是npm run,也会出现此错误 【参考方案1】:

我第一次尝试使用 node js 时遇到了同样的问题。 我注意到这个问题发生在我身上,因为我在不同的目录中有一些同名的 .js 文件,它们位于同一个主目录中。 我在主项目文件夹之外创建了另一个目录,并创建了一个 .js 文件。 之后,它运行良好。 ex- app.js

【讨论】:

我没明白你的意思 @Tito 在我的特殊情况下,我正在运行一个 package.json 脚本,它是 node 'Server/index.js',应该是 node index.js。我认为这也是这个答案的翻译。【参考方案2】:
    删除node_modules目录 删除package-lock.json文件 运行npm install 运行npm start

rm -rf node_modules package-lock.json && npm install && npm start

【讨论】:

查看***.com/questions/31976722/… 我承认这个答案得到了很多人的支持。但是,我强烈建议对此处给出的建议保持谨慎。 caseyjustus、ttfreeman、Bishwajit Vikram、Muhammad Tahir、Andrew Koper 的答案都有一个共同点,即当在一个实际上不存在的文件上调用node 时,就会出现问题中的错误。( !) -- 重新安装Node.js 只能作为最后的手段——当其他一切都失败时。首先阅读this answer,您可能会省去一些麻烦。【参考方案3】:

帮助我的是将我正在使用的.js 文件放在一个新文件夹中,将该文件夹拖放到 VS Code 中(直接在 VS Code 中打开目录),在 VS Code 中打开终端,然后只需输入node <filename>.js(或者在我的情况下为node index.js)。

我已经在我的系统上安装了node,但无论出于何种原因,我仍然收到您提到的错误,即使我输入了文件的直接路径,即node /desktop/index.js

因此,在我的桌面上创建一个新文件夹,将 .js 文件放在该文件夹中,在 VS Code 中打开该文件夹,然后在终端中输入 node index.js 解决了我的问题。

【讨论】:

【参考方案4】:

package.json ("npm": <your server code file name>.js) 中的文件名替换为运行服务器代码的文件(它应该是app.jsmain.jsstart.jsserver.js,或者您选择的任何内容)。

【讨论】:

【参考方案5】:

特定的 .js 文件位于应用程序的子文件夹 (/src) 中,而终端位于一般的 App 文件夹中。(其中包含所有包文件、模块、公共文件夹、src 文件夹)它抛出了那个错误。去应用程序的 (/src) 解决了我的问题。

【讨论】:

【参考方案6】:

我遇到了同样的错误,因为我的文件名末尾有一个空格(不是参考文件名,而是实际文件名)。一旦我将“app.js”更改为“app.js”,它就可以正常工作了。

【讨论】:

我遇到了同样的问题,文件名中有空格:)【参考方案7】:

同样的事情发生在我身上,我刚刚通过删除“dist”文件并重新运行应用程序来解决。

【讨论】:

【参考方案8】:

对我来说,我尝试使用的 Node 包只能在旧版本的 Node 上运行。

我能够通过使用 Homebrew 安装旧版本的 Node 来修复它:

brew unlink node
brew install node@12
echo 'export PATH="/usr/local/opt/node@12/bin:$PATH"' >> ~/.zshrc

在上述命令中,您需要编辑 Node 版本,然后导出 PATH 命令。

【讨论】:

【参考方案9】:

以下命令为我解决了这个问题。

npm install node-gyp -g
npm install bcrypt -g

npm install bcrypt -save

【讨论】:

【参考方案10】:

我使用

卸载了puppeteer, mocha and chai
npm uninstall puppeteer mocha chai

从命令行然后重新安装 使用

npm install puppeteer mocha chai

而且错误消息根本就没有出现

【讨论】:

这对我很有帮助。谢谢!【参考方案11】:

昨晚我发生了一件奇怪的事。 我运行命令node run watch 而不是npm run watch。 我尝试在这个线程上做所有事情,但对我来说没有任何效果。我很沮丧,但最终发现我运行了错误的命令。我放声大笑。有时会发生这种事情。不过喜欢学习 Nodejs。

【讨论】:

【参考方案12】:

试试下面的命令

删除node_modulespackage-lock.json

rm -rf node_modules package-lock.json

然后运行以下命令安装依赖项

npm install

最后,通过以下命令运行你的包。

npm start

【讨论】:

对我不起作用【参考方案13】:

确保在运行node <path>/app.js 时为app.js 提供正确的地址路径。找不到了

Error: Cannot find module 'C:\Users\User\Desktop\NodeJsProject\app.js'

【讨论】:

【参考方案14】:

我遇到了同样的错误:

 nodemon -w server.js server.js

[nodemon] 2.0.2
[nodemon] reading config .\nodemon.json
[nodemon] to restart at any time, enter `rs`
[nodemon] or send SIGHUP to 19248 to restart
[nodemon] ignoring: .\node_modules/**/* .\.next/**/*
[nodemon] watching dir(s): server.js
[nodemon] watching extensions: js,json
[nodemon] starting `node server.js index.js`
[nodemon] forking
[nodemon] child pid: 18840
[nodemon] watching 30 files
internal/modules/cjs/loader.js:797
    throw err;
    ^

Error: Cannot find module 'D:\Programming\01a.nextjs\project\index.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
    at Function.Module._load (internal/modules/cjs/loader.js:687:27)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
    at internal/main/run_main_module.js:17:11 
  code: 'MODULE_NOT_FOUND',
  requireStack: []

[nodemon] app crashed - waiting for file changes before starting...

我遵循了这里的所有建议,但没有一个对我有用。 我发现我将 server.js 移到了他自己的文件夹 server/server.js 中,但是在 package.json 中我忘记了对此进行更改:

 "dev": "nodemon -w server.js server.js",
 "build": "next build",
 "start": "NODE_ENV=production node server.js"

到这里:

"dev": "nodemon -w server/server.js server/server.js",
"build": "next build",
"start": "NODE_ENV=production node server/server.js"

在我进行此更改并使用npm run dev 重新启动服务器后,一切正常。

【讨论】:

【参考方案15】:

我更改了我的项目文件夹的名称并且它有效,我不知道为什么:)

【讨论】:

我遇到过,但我相信是父文件夹的名称混淆了 npm,因为它应该有特殊字符。【参考方案16】:

当我使用以下命令时,我也遇到了同样的错误:

node .function-hello.js

我把我的命令改成下面的命令,效果很好:

node .\function-hello.js

【讨论】:

【参考方案17】:

对我来说,从命令提示符再次“npm install”有效。命令提示符必须是“以管理员身份运行”

【讨论】:

【参考方案18】:

你需要启动服务器使用跟随命令

npm start

yarn start

【讨论】:

这是一个糟糕的事情。我正在运行节点启动而不是 npn 启动。太傻了!【参考方案19】:

你尝试执行的js文件路径错误;您必须输入相对于 node 所在的根目录的路径和要执行的文件名,但您输入的不是它所在的位置。

我输入了node redux-basics.js,收到了这个有点误导性的错误消息,Stack Overflow'ed,查看了我的文件系统,我应该输入node src/redux-basics.js

【讨论】:

【参考方案20】:

在主目录中创建 .js 文件,而不是在 public 或 src 等子文件夹中。

【讨论】:

【参考方案21】:

这个错误信息很容易重现。

打开终端窗口。 (在 Windows 上:WinKeycmdEnter。 在 Linux 上:Ctrl + Alt + t。) 键入npm 并按Enter 以查看是否安装了Node.js。 如果你得到command not found,请在https://nodejs.org/en/download/下载 并安装。 (在 Linux/Ubuntu 上:sudo apt install nodejs,如果您愿意的话。) 输入(或粘贴)node thisFileDoesNotExist.js(然后按 Enter)。

在 Windows 上预计会看到类似于:

internal/modules/cjs/loader.js:969
  throw err;
  ^

Error: Cannot find module [... + a few more lines]

在 Linux (Ubuntu 18.04) 上:

module.js:549
  throw err;
  ^

Error: Cannot find module [...]

我还没有尝试过 macOS,但也希望有类似的东西。

注意:调试时可能会无缘无故地发生这种情况 在 Visual Studio Code 中。 如果您在 VScode 中收到错误,请查看答案是否为 HappyHands31 有什么帮助。


最后,在终端运行Node.js没有报错, 在 Windows 终端(命令行)中尝试:

echo console.log('\nHello world!')> hello.js
node hello.js

在Linux终端试试:

echo "console.log('\nHello world\!\n')"> hello.js
node hello.js

当然,期望看到终端响应:

Hello world!

【讨论】:

【参考方案22】:

Caseyjustus 的评论帮助了我。 显然我的 require 路径中有空间。

const listingController = require("../controllers/ listingController");

我将代码更改为

const listingController = require("../controllers/listingController");

一切都很好。

【讨论】:

【参考方案23】:

在我执行 sudo npm i cjs-loader 之后它终于为我工作了(并确保安装 express,而不仅仅是 express-http-proxy)

【讨论】:

【参考方案24】:

对于那些使用TypeScript的人来说,这是由您设置的compilerOptions中的incremental选项引起的。

这会导致构建tsconfig.tsbuildinfo 文件,该文件存储所有缓存数据。如果您删除该文件并重新编译项目,它应该可以立即工作。

【讨论】:

【参考方案25】:

在通过 docker 运行 nodemon 时遇到了类似的问题,

值得检查一下 package.json 中的“主”文件是否配置为指向正确的入口点

在 package.json 中

"main": "server.js",
"scripts": 
    "start":"nodemon src/server.js",
    "docker:build": "docker build -f ./docker/Dockerfile . "
  ,

【讨论】:

【参考方案26】:

只需键入“node NodeJsProject/app.js

您的程序将运行 :)

【讨论】:

【参考方案27】:

您可能没有从正确的目录运行终端命令。

例如,如果您创建了一个新文件夹,请考虑导航到该文件夹​​,然后从那里运行命令。

【讨论】:

【参考方案28】:

转到你的 package.json 文件并检查这一行:

"main": "main.js

" 括号中提供的文件必须与您尝试运行的文件完全相同

node main.js

这解决了我的问题

【讨论】:

【参考方案29】:

在使用 nestjs 使用 typescript 时,我遇到了同样的问题。 第一次尝试在 VS Code 中运行调试后,无论出于何种原因(使用 launch.json - 顺便说一句,它不起作用。)

对我有用的是: 删除 dist 文件夹(从 .ts 文件生成 .js 文件的文件夹,该文件夹的路径通常在 tsconfig.json 中指定)。

简单的解决方案,但很有效:)

【讨论】:

【参考方案30】:

如果您正在使用 node/express,请考虑在终端中运行它

npm i cjs-loader

【讨论】:

以上是关于内部/模块/cjs/loader.js:582 抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

接口测试介绍

接口测试

接口测试详细说明

接口测试学习接口测试介绍

接口测试基础

什么是接口?