内部/模块/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.js
、main.js
、start.js
、server.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_modules
和package-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 上:WinKey、cmd
、Enter。
在 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 抛出错误的主要内容,如果未能解决你的问题,请参考以下文章