【问题标题】:internal/modules/cjs/loader.js:582 throw err内部/模块/cjs/loader.js:582 抛出错误
【发布时间】: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://stackoverflow.com/questions/53545800#62740853.
  • 我遇到了同样的问题。我将 webpack-dev-server 降级到 2.5.1 版本。现在一切正常。
  • 我通过使用 yarn 而不是 npm 解决了这个问题
  • 如果使用nvm run 而不是npm run,也会出现此错误

标签: javascript node.js


【解决方案1】:

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

【讨论】:

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

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

【讨论】:

  • 我承认这个答案得到了很多人的支持。但是,我强烈建议对此处给出的建议保持谨慎。 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
                                              

                                              【讨论】:

                                                猜你喜欢
                                                • 2020-06-04
                                                • 2021-04-15
                                                • 2021-08-13
                                                • 1970-01-01
                                                • 2019-10-08
                                                • 2021-11-22
                                                • 1970-01-01
                                                • 2019-08-18
                                                相关资源
                                                最近更新 更多