【问题标题】:npm ERR cb() never callednpm ERR cb() 从未调用
【发布时间】:2013-03-01 21:21:35
【问题描述】:

我有一个托管在 Heroku 上的 Node.js 应用程序。每次我执行git push heroku 时都会出现以下错误:

Counting objects: 14, done.
Delta compression using up to 6 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.20 KiB, done.
Total 12 (delta 8), reused 0 (delta 0)

-----> Node.js app detected
-----> Resolving engine versions
       Using Node.js version: 0.6.20
       Using npm version: 1.2.12
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
       npm http GET https://registry.npmjs.org/pg/0.6.15
       npm http GET https://registry.npmjs.org/socket.io
       npm http 200 https://registry.npmjs.org/pg/0.6.15
       npm http GET https://registry.npmjs.org/pg/-/pg-0.6.15.tgz
       npm http 200 https://registry.npmjs.org/socket.io
       npm http GET https://registry.npmjs.org/socket.io/-/socket.io-0.9.13.tgz
       npm http 200 https://registry.npmjs.org/pg/-/pg-0.6.15.tgz
       npm http 200 https://registry.npmjs.org/socket.io/-/socket.io-0.9.13.tgz
       npm http GET https://registry.npmjs.org/socket.io-client/0.9.11
       npm http GET https://registry.npmjs.org/policyfile/0.0.4
       npm http GET https://registry.npmjs.org/base64id/0.1.0
       npm http GET https://registry.npmjs.org/redis/0.7.3
       npm http GET https://registry.npmjs.org/generic-pool/1.0.9
       npm http 200 https://registry.npmjs.org/policyfile/0.0.4
       npm http GET https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz

       npm http 200 https://registry.npmjs.org/base64id/0.1.0
       npm http GET https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz
       npm http 200 https://registry.npmjs.org/generic-pool/1.0.9
       npm http GET https://registry.npmjs.org/generic-pool/-/generic-pool-1.0.9
.tgz
       npm http 200 https://registry.npmjs.org/socket.io-client/0.9.11
       npm http GET https://registry.npmjs.org/socket.io-client/-/socket.io-clie
nt-0.9.11.tgz
       npm http 200 https://registry.npmjs.org/redis/0.7.3
       npm http GET https://registry.npmjs.org/redis/-/redis-0.7.3.tgz
       npm http 200 https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz

       npm http 200 https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz
       npm http 200 https://registry.npmjs.org/generic-pool/-/generic-pool-1.0.9
.tgz
       npm http 200 https://registry.npmjs.org/socket.io-client/-/socket.io-clie
nt-0.9.11.tgz
       npm http 200 https://registry.npmjs.org/redis/-/redis-0.7.3.tgz

       > pg@0.6.15 install /tmp/build_36us8733h7kkr/node_modules/pg
       > node-waf configure build || (exit 0)

       Checking for program g++ or c++          : /usr/bin/g++
       Checking for program cpp                 : /usr/bin/cpp
       Checking for program ar                  : /usr/bin/ar
       Checking for program ranlib              : /usr/bin/ranlib
       Checking for g++                         : ok
       Checking for node path                   : not found
       Checking for node prefix                 : ok /tmp/node-node-nNUw
       Checking for program pg_config           : /usr/bin/pg_config
       'configure' finished successfully (0.058s)
       Waf: Entering directory `/tmp/build_36us8733h7kkr/node_modules/pg/build'
       [1/2] cxx: src/binding.cc -> build/Release/src/binding_1.o
       [2/2] cxx_link: build/Release/src/binding_1.o -> build/Release/binding.no
de
       Waf: Leaving directory `/tmp/build_36us8733h7kkr/node_modules/pg/build'
       'build' finished successfully (0.492s)
       npm http GET https://registry.npmjs.org/uglify-js/1.2.5
       npm http GET https://registry.npmjs.org/ws
       npm http GET https://registry.npmjs.org/xmlhttprequest/1.4.2
       npm http GET https://registry.npmjs.org/active-x-obfuscator/0.0.1
       npm http 200 https://registry.npmjs.org/active-x-obfuscator/0.0.1
       npm http GET https://registry.npmjs.org/active-x-obfuscator/-/active-x-ob
fuscator-0.0.1.tgz
       npm http 200 https://registry.npmjs.org/uglify-js/1.2.5
       npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
       npm http 200 https://registry.npmjs.org/xmlhttprequest/1.4.2
       npm http GET https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1
.4.2.tgz
       npm http 200 https://registry.npmjs.org/ws
       npm http GET https://registry.npmjs.org/ws/-/ws-0.4.25.tgz
       npm http 200 https://registry.npmjs.org/active-x-obfuscator/-/active-x-ob
fuscator-0.0.1.tgz
       npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
       npm http 200 https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1
.4.2.tgz
       npm http 200 https://registry.npmjs.org/ws/-/ws-0.4.25.tgz
       npm http GET https://registry.npmjs.org/zeparser/0.0.5
       npm http GET https://registry.npmjs.org/commander
       npm http GET https://registry.npmjs.org/tinycolor
       npm http GET https://registry.npmjs.org/options
       npm http 200 https://registry.npmjs.org/zeparser/0.0.5
       npm http GET https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
       npm http 200 https://registry.npmjs.org/options
       npm http GET https://registry.npmjs.org/options/-/options-0.0.3.tgz
       npm http 200 https://registry.npmjs.org/tinycolor
       npm http GET https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
       npm http 200 https://registry.npmjs.org/commander
       npm http GET https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
       npm http 200 https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
       npm http 200 https://registry.npmjs.org/options/-/options-0.0.3.tgz
       npm http 200 https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
       npm http 200 https://registry.npmjs.org/commander/-/commander-0.6.1.tgz

       > ws@0.4.25 install /tmp/build_36us8733h7kkr/node_modules/socket.io/node_
modules/socket.io-client/node_modules/ws
       > (node-gyp rebuild 2> builderror.log) || (exit 0)

       make: Entering directory `/tmp/build_36us8733h7kkr/node_modules/socket.io
/node_modules/socket.io-client/node_modules/ws/build'
         CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
         SOLINK_MODULE(target) Release/obj.target/bufferutil.node
         SOLINK_MODULE(target) Release/obj.target/bufferutil.node: Finished
         COPY Release/bufferutil.node
         CXX(target) Release/obj.target/validation/src/validation.o
         SOLINK_MODULE(target) Release/obj.target/validation.node
         SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
         COPY Release/validation.node
       make: Leaving directory `/tmp/build_36us8733h7kkr/node_modules/socket.io/
node_modules/socket.io-client/node_modules/ws/build'
       npm ERR! cb() never called!
       npm ERR! not ok code undefined
       npm ERR! cb() never called!
       npm ERR! not ok code 1
 !     Failed to install --production dependencies with npm
 !     Heroku push rejected, failed to compile Node.js app

To git@heroku.com:still-chamber-1286.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:still-chamber-1286.git'

错误在最后几行:

npm ERR! cb() never called!
           npm ERR! not ok code undefined
           npm ERR! cb() never called!
           npm ERR! not ok code 1
     !     Failed to install --production dependencies with npm
     !     Heroku push rejected, failed to compile Node.js app

    To git@heroku.com:still-chamber-1286.git
     ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to 'git@heroku.com:still-chamber-1286.git'

我之前将代码推送到 Heroku 没有任何问题;直到星期一才出现这个错误。

我在网上看到过类似的帖子,其中提到了略有不同的错误,但之前没有看到过带有! [remote rejected] master -> master (pre-receive hook declined) 的帖子。

【问题讨论】:

  • 今天将我的节点应用程序推送到 heroku 时遇到了同样的错误:! [remote rejected] master -> master (pre-receive hook declined)
  • 奇怪的是,将"engines": { "node": "0.8.x" } 添加到我的package.json 为我修复了该错误。
  • 成功了,非常感谢 :) 虽然应该注意我已经在 package.json 中有 "engines": { "node": "0.6.x" },但我只需将其从 0.6.x 更改为 0.8.x
  • 目前有一个关于 npm 和节点 0.10.0 错误的未解决问题:github.com/isaacs/npm/issues/2907
  • 我通过简单地更新 npm ($> npm install -g npm) 为自己解决了这个问题,因为我在控制台输出中收到警告说软件包需要更高版本。

标签: node.js heroku npm


【解决方案1】:

我的问题是我的代理设置对于公司网络不正确。具体来说,我的密码没有在 URL 中设置。

【讨论】:

    【解决方案2】:

    还没有看到这个答案,所以希望这对某人有所帮助。

    如果您尝试设置工作环境并使用存储库管理器(例如 Artifactory)并且遇到此错误,请确保您已连接到您的工作 VPN。即使您断开连接并重新连接。

    我们遇到了这个问题,只需(重新)连接到 VPN 即可解决问题。

    【讨论】:

      【解决方案3】:

      如果您是在 IntelliJ IDEA 等 IDE 中打开代码,请关闭并重试

      【讨论】:

        【解决方案4】:

        我安装了一个软件,它在Users/<name>/.npmrc下生成了一个.npmrc文件

        删除 .npmrc 文件为我解决了这个问题。

        【讨论】:

          【解决方案5】:

          如果在运行npm cache clean --force 后错误仍然存​​在,请尝试在切换到其他网络后重新运行npx create-react-app your_app_name。此错误也可能是由于网络缓慢且不稳定造成的...

          【讨论】:

            【解决方案6】:

            从 NPM 6 开始,您可以进行全新安装。
            那是唯一对我有用的解决方案。

            只需运行以下命令:

            npm clean-install
            

            注意事项:

            • 您也可以手动删除node_modules 文件夹,然后重试以防上述命令失败。
            • 如果仍然无法正常工作,则可能是全局缓存已损坏,请尝试运行 npm cache clean --force,然后进行全新安装。
            • clean-install 命令适用于 npm 6 及更高版本。对于旧版本,请考虑检查以下其他答案。

            【讨论】:

            • 工作!! npm 应该像 git 一样建议这样的解决方案以及错误。 npm 只是抛出致命错误...
            【解决方案7】:

            对我来说,在删除 package-lock.json 并运行命令清理缓存后出现问题 我能够运行 npm -i 成功。

            【讨论】:

              【解决方案8】:

              我试过了

              1. npm 缓存验证
              2. npm 缓存清理 --force.
              3. npm i -g npm

              但没有运气。

              但是卸载以前的节点版本并安装最新的节点版本对我有用。

              【讨论】:

                【解决方案9】:

                Try switching your network, 不知何故,切换网络对我有用。

                我尝试了其他答案中提到的许多事情,例如:

                1. npm 缓存清理 --force
                2. 删除现有的 node_modules,删除 package-lock.json,然后使用 -npm i 重新安装
                3. npm 缓存验证
                4. npm 全新安装

                None of the above worked for me,可能对你有用。 试试你的运气。

                【讨论】:

                  【解决方案10】:

                  截至 2021 年 3 月,新的 NPM 版本修复了其中的许多问题。

                  所以调用npm i -g npm@latest 再次解决了这个问题(在这之间没有工作)。

                  【讨论】:

                  • 您执行此操作时的最新版本是什么?
                  • 对不起。我不记得了。
                  【解决方案11】:

                  我使用的是 WSL2 和 ubuntu。我已经将 .npmrc 添加到 home/user 并运行 sudo ,然后我遇到了这个问题。 我意识到我必须在 ~ 文件夹 ($home/user) 中创建我的项目。它不起作用,因为我的项目在 /mnt/c 中

                  【讨论】:

                    【解决方案12】:

                    我的项目中有同样的错误。我正在开发独立的 Intranet,所以我的解决方案如下:

                    • 运行npm clean cache --force
                    • 删除 package-lock.json
                    • 就我而言,我必须在.npmrc 中设置 NPM 代理

                    【讨论】:

                      【解决方案13】:

                      删除package-lock.json 并再次安装所需的软件包为我解决了这个问题。

                      【讨论】:

                        【解决方案14】:

                        Windows WSL、Ubuntu、npm install 返回错误。我的解决方案:

                        sudo npm install
                        

                        不知道为什么我必须使用 sudo。清理缓存等其他解决方案对我不起作用。

                        【讨论】:

                          【解决方案15】:

                          是什么帮助我克服了这个错误 - cb() never called... 正在降级我的 NPM 版本。 我有 6.14.9 版,然后通过键入以下内容降级到 6.14.6 版:

                              npm install -g npm@6.14.6
                          

                          注意:似乎没有任何帮助。我尝试了许多建议的解决方案,包括“npm cache clean”或卸载 NPM 并重新安装。

                          【讨论】:

                          • 对于那些还在为这个问题而苦苦挣扎并且还没有找到解决方案的人来说,也许这个链接会对他们有所帮助。 stackoverflow.com/questions/40461439/…
                          • 我正在使用 NPM v6.14.11 并删除 package-lock.json 工作正常 - 不用担心 package-lock.json 会再次生成。
                          【解决方案16】:

                          帮我关掉杀毒软件

                          【讨论】:

                          • 你肯定不是认真的吧?这不是在 SO 上传播的那种建议。虽然它可能有助于成功运行 npm,但它会适得其反,因为可以下载病毒等并作为最坏的情况运行。甚至在不使用 npm 的情况下入侵你的机器。
                          • 它帮助我解决了我的问题,因为防病毒软件阻止了进程,然后我再次打开了防病毒软件。放松一下
                          【解决方案17】:

                          原来我空间不足!删除驱动器上的文件允许正常启动和运行。

                          【讨论】:

                            【解决方案18】:

                            在我的例子中,我在运行 node:10.16.0-alpine 映像的 Docker 容器中运行 npm install。问题是package.json直接指向GitHub中的一个包触发的:

                            "dependencies": {
                                "gulp-sass-inline-svg": "git+https://github.com/chriswburke/gulp-sass-inline-svg.git"
                            }
                            

                            切换到安装了 git 的 Docker 镜像后,错误消失了。

                            【讨论】:

                              【解决方案19】:

                              对我有用的是:删除 package-lock.json 文件并运行以下命令:

                              npm 缓存清理 --force

                              【讨论】:

                                【解决方案20】:

                                试试

                                sudo npm cache clean --force
                                

                                更多信息请参考:https://reactgo.com/npm-err-cb-never-called/

                                【讨论】:

                                • 对于尝试此操作的任何人,我在本地 Angular 项目目录(VS 代码终端)中执行此操作,并且“sudo”不起作用。但是,仅使用 npm cache clean --force 在我的本地实例中为我工作并解决了此错误消息。谢谢!
                                • 截至 2021 年底仍能正常工作
                                【解决方案21】:

                                [作品]尝试

                                npm config delete https-proxy
                                

                                它会与代理冲突。

                                【讨论】:

                                  【解决方案22】:

                                  我今天也遇到了同样的问题,因为网络问题,我在中间强制停止了 npm 包下载。

                                  我尝试了各种方法,例如,

                                  1. 运行 sudo npm cache clean -f - 没有按预期工作
                                  2. 清理卸载节点并重新安装 - 这也不起作用

                                  我终于尝试删除包含导致问题的 npm 缓存的文件夹。我运行了以下命令,

                                  sudo rm -rf /Users/{user_system_user}/.npm/
                                  

                                  然后我尝试安装卡住的包,一切都像魅力一样。

                                  P.S:{user_sytem_user}根据你系统的当前用户替换。

                                  【讨论】:

                                  • 我认为使用最新的 npm 版本,您的解决方案是唯一有效的解决方案。
                                  • 是的,我尝试了很多其他的东西,但你的就是达成交易的那个
                                  【解决方案23】:

                                  在我的情况下,我无法安装 VueJS 插件,我必须:

                                  更改文件的所有权:

                                  sudo chown -R $(whoami) ~/.npm
                                  sudo chown -R $(whoami) /usr/local/lib
                                  sudo chown -R $(whoami) /usr/local/bin
                                  

                                  然后确保使用最新的 npm:

                                  npm install -g npm@latest
                                  

                                  然后安装我的插件,在你的情况下,你的命令可能不是。

                                  【讨论】:

                                    【解决方案24】:

                                    运行以下命令解决了我的问题

                                    npm install --no-package-lock
                                    

                                    【讨论】:

                                      【解决方案25】:

                                      知道这是一个老问题,你们中的许多人已经提供了答案。只是为了分享我对这个错误的经验以及我是如何修复的。

                                      这一切都是在我将 Node 版本升级到 > 12 之后开始的,我确实浏览了所有答案并尝试按照步骤清除 npm 缓存,删除 node_modules 文件夹。没有人能解决我的问题。

                                      在我的情况下,根本原因是代理限制安装。我删除了代理设置以解决问题。

                                      1. 检查您是否有任何代理配置

                                        npm config list
                                        
                                      2. 删除他们

                                        npm config delete proxy
                                        npm config delete http-proxy
                                        npm config delete https-proxy
                                        
                                      3. 现在试试

                                        npm install
                                        

                                      【讨论】:

                                        【解决方案26】:

                                        我从互联网上尝试了很多东西。只有以下方法对我有用。如果此问题中的每个答案都不起作用,请按以下顺序尝试以下步骤。 注意:

                                        • 需要重新启动
                                        • 使用 cmd 执行代码(VSCode 不适合我)
                                        1. 删除本地节点模块文件夹
                                        2. 删除本地package-lock文件
                                        3. 卸载 node.js
                                        4. 重启
                                        5. 删除文件夹: “C:\Users\ YOUR LOGIN NAME \AppData\Roaming\npm”和 "C:\Users\ YOUR LOGIN NAME \AppData\Roaming\npm-cache"
                                        6. AppData 下查找其他 npm 文件夹并将它们也删除。
                                        7. 重启
                                        8. 重新安装node.js
                                        9. 重启
                                        10. npm cache clean --force
                                        11. npm cache verify
                                        12. npm install --force

                                        【讨论】:

                                          【解决方案27】:

                                          更新:这里的问题很常见,这是新的修复 npm cache verify 运行,你会很高兴!

                                          【讨论】:

                                          • 不知道确切的问题是什么,但这个解决方案对我有用。谢谢!
                                          • 我在npm version: 6.14.14 node version: v14.17.5 遇到了这个问题,以上解决方案有效!谢谢:-)
                                          【解决方案28】:

                                          重要提示! 现在认为以下解决方案不稳定,您应该改用节点版本管理:Node Version Manager on Github。大卫沃尔什也有一个good introduction to NVM。 NVM 运行良好,几年来我一直在使用它来管理遗留的 WordPress 项目。


                                          请不要使用这个 - 使用 NVM

                                          我在尝试为 WordPress 安装 Sage 主题时遇到了这个问题。当我在主题目录上运行npm install 时,它失败了。

                                          查看 package.json 中的依赖项,我可以看到我为 Node 运行的引擎已过时。在命令行运行node -v显示我在v0.10.9,最新版本的Sage需要>= 0.12.0

                                          所以这是解决方法。这些步骤来自David Walsh's blog

                                          1. 清除你的 npm 缓存:sudo npm cache clean -f
                                          2. 安装最新版本的节点助手:sudo npm install -g n
                                          3. 告诉助手(n)安装最新的稳定版Node:sudo n stable

                                          然后您应该会看到进度显示,之后您将获得最新信息。

                                          当我在执行此操作后运行 npm install 时,一切正常,并且我能够运行 gulp 来构建初始的 dist 目录。

                                          【讨论】:

                                          【解决方案29】:

                                          我遇到了同样的问题,我花了几天的时间来解决这个问题。最后,我想通了,这是我的网络问题。

                                          我通过脚本使用公司代理。当我打开 pac 文件并从那里获取代理并添加时,它开始工作,我从来没有遇到过同样的问题。

                                          【讨论】:

                                            【解决方案30】:

                                            对我来说,上述解决方案均无效(重新安装、清除缓存、文件夹等)。

                                            我的问题解决了:

                                            npm config set registry https://registry.npmjs.org/
                                            

                                            【讨论】:

                                            • 我不得不使用 HTTP 而不是 HTTPS npm config set registry https://registry.npmjs.org/
                                            猜你喜欢
                                            • 2018-09-19
                                            • 2020-06-15
                                            • 2021-09-09
                                            • 1970-01-01
                                            • 2021-06-02
                                            • 2018-03-20
                                            • 2019-12-10
                                            • 2019-12-18
                                            • 2020-06-24
                                            相关资源
                                            最近更新 更多