npm ERR cb()从未调用过

Lou*_*e K 234 heroku node.js npm

我有一个在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'
Run Code Online (Sandbox Code Playgroud)

错误发生在最后几行:npm ERR!cb()从未调用过!错误的ERR!不好的代码undefined npm ERR!cb()从未调用过!错误的ERR!不好的代码1!无法使用npm安装--production依赖项!Heroku推送拒绝,无法编译Node.js应用程序

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'
Run Code Online (Sandbox Code Playgroud)

我之前将代码推送到Heroku没有任何问题; 只有从星期一开始我才有这个错误.

我在网上看过类似的帖子,指的是略有不同的错误,但之前没有见过! [remote rejected] master -> master (pre-receive hook declined).

Alb*_*rto 272

如果你有npm版本5或更高版本,请先尝试:

$ sudo npm cache verify
Run Code Online (Sandbox Code Playgroud)

除此以外:

$ sudo npm cache clean
Run Code Online (Sandbox Code Playgroud)

我的节点和npm版本是:

$ node -v
v0.10.0

$ npm -v
1.2.14
Run Code Online (Sandbox Code Playgroud)

https://docs.npmjs.com/cli/cache

  • 相同的版本,解决方法对我不起作用. (7认同)
  • 啊.我试着建议对这个答案进行编辑,但显然必须至少有6个字符.无论如何,它应该是"干净"而不是"清晰".https://npmjs.org/doc/cache.html (7认同)
  • 当我不断在不同的npm注册表之间切换时,`npm cache clean`对我有用。 (2认同)

Mar*_*val 141

对于在2013年9月29日左右访问此页面的任何人,Node.js 0.10.19中存在一个已关闭的错误,导致此错误.

https://github.com/isaacs/npm/issues/2907#issuecomment-15215278 https://github.com/joyent/node/issues/6263#issuecomment-25113849

如果你在Heroku上,你应该升级到0.10.20

"engines": {
    "node": "0.10.20"
}
Run Code Online (Sandbox Code Playgroud)

  • 9月29日?这是来自未来的错误吗?:)感谢您的解决方案! (38认同)
  • 你是从未来发布的!这确实是一个严重的错误.; / (3认同)
  • 45个赞成(在撰写本文时)在22个小时的范围内:)很高兴你先发布一个新的和现在的答案来解决旧的但类似的问题.互联网摇滚! (2认同)

小智 31

尝试

sudo npm cache clean --force
Run Code Online (Sandbox Code Playgroud)


Aid*_*man 23

你有一个特定版本的"npm"规定下,"engines"在你的package.json?听起来像NPM v1.2.15 解决了这个问题(并且Heroku已经可用).我遇到了同样的问题"1.1.x".

  • 如果您在德克萨斯州奥斯汀,请让我买一个比萨饼!我很抱歉所有的上限,但它抓住了我的回答结果当前的喜悦状态.我永远不会怀疑NPM的那个版本规范是罪魁祸首.艾丹,我希望你有一个美好的一天. (18认同)

raf*_*nes 21

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

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

所以这是解决这个问题的方法.这些步骤来自David Walsh的博客

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

然后,您应该获得进度显示,之后您将获得最新信息.

当我npm install执行此操作后,一切正常,我能够运行gulp以构建初始dist目录.

  • 第 2 步也应该是 `sudo npm install -gn`。 (2认同)

小智 17

尝试清除npm缓存:

sudo npm cache clean --force
Run Code Online (Sandbox Code Playgroud)


小智 12

对我来说,上述解决方案都不起作用(重新安装、清除缓存、文件夹等)。

我的问题解决了:

npm config set registry https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)


小智 11

如果您已更新angular cli,npm,node,则无需执行任何其他操作.只需运行以下命令即可解决问题.此命令还解决了"意外结束"的问题.

npm install --no-package-lock
Run Code Online (Sandbox Code Playgroud)


小智 10

更新NodeJS https://nodejs.org/en/修复了我的问题.

运行npm install -g npm&npm cache clean


Sen*_*cob 9

我在安装时遇到了同样的问题ionic@beta.我尝试了以下项目,他们没有帮助我.

  1. npm cache clean
  2. 从中手动删除缓存 %temp%\npm-*
  3. 命令提示"以管理员身份运行"

我通过安装node-v5.10.1-x64.msi解决了这个问题(以前的版本是node-v5.9.0-x64.msi)并npm cache clean在安装之前运行ionic@beta

有效!

  • 这对我有用,谢谢!5.9.x必定有问题. (2认同)

Jam*_*guo 9

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

  • 不知道确切的问题是什么,但这个解决方案对我有用。谢谢! (2认同)

Sve*_*ing 8

我在NPM版本1.3.11中遇到了同样的问题,并且通过多次重新运行完全相同的命令解决了这个问题(在我的例子中是"npm update -g").每次后续运行时都会弹出一个不同包的错误,并最终成功更新所有内容.

至少对我来说,它似乎是由网络问题(下载损坏)引起的.我也收到有关无效程序包的错误,我可以通过删除"tmp.tgz"的所有实例来解决这个问题.

编辑:(可能不相关,但万一这有助于任何人:我使用Windows,并在收到初始错误后以管理员身份启动命令提示符).


SHU*_*WAR 8

  • npm install -g npm
  • 然后跑 npm install


Mal*_*ake 8

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


obi*_*ahn 7

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

所以调用npm i -g npm@latest再次修复了这个问题(在这两者之间不起作用)。


小智 6

我刚刚在全球范围内安装了最新版本的 NPM,它对我有用。我猜清除 npm 缓存是可选的。

npm install -g npm
Run Code Online (Sandbox Code Playgroud)


Fli*_*ion 6

对我来说,在 npm6.4.0和 node 上10.9.0没有一个答案有效。重新安装节点、npm、清理缓存、删除文件夹......

经过一些调试后,我发现我使用npm link了两个正在开发的模块相互链接。一旦我删除并重做一些链接,我就能够让它再次工作。


Tim*_*sen 6

我有cb() never called!错误,这里的答案都没有直接对我有用。我正在运行 Node v8.11.2,我必须手动删除package-lock.json文件才能到达任何地方。这样做之后,我npm cache verify按照一些建议的答案运行。然后,运行npm i产生以下结果:

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN securities-stub@1.0.0 No description
npm WARN securities-stub@1.0.0 No repository field.

up to date in 5.118s
Run Code Online (Sandbox Code Playgroud)


joe*_*ler 6

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

npm 缓存清理 --force


h--*_*--n 5

sudo npm cache clean没有为我工作。更新到最新版本的节点帮助。

我有节点v.5.91并更新为v6.9.1

  • 这似乎是一个返回问题,我在 10.15.0 和 11.6.0 上遇到了同样的问题,我不得不降级 9.11.2,它起作用了。 (2认同)

小智 5

[作品] 试试

npm config delete https-proxy
Run Code Online (Sandbox Code Playgroud)

它会与代理冲突。


hal*_*leo 5

我建议: 改用 Yarn!- Yarn是一个包管理器,它使用与 npm 相同的package.json文件和node_modules文件夹。

使用 npm 我遇到了同样的问题:在 CentOS 6 安装中,我ERR cb() never called反复收到错误,并且无法找到一种方法使 npm可靠地完成某些软件包的安装(例如webpack)。- 即使网络连接不稳定,Yarn 也能完美运行。

迁移到 Yarn 很容易。大多数子命令是相同的。他们有很好的迁移指南。请继续阅读最后方便的CLI 命令比较。


小智 5

对于 Ubuntu 用户,下面给出的方法对我有用。

首先,执行以下操作:sudo npm cache verify

然后转到 Home->.npm 并通过以下方式删除 _cache 文件夹:sudo rm -rf _cacache/

去检查一下,也许你找到了解决方案。


小智 5

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

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

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

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

    npm config list
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除它们

    npm config delete proxy
    npm config delete http-proxy
    npm config delete https-proxy
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在试试

    npm install
    
    Run Code Online (Sandbox Code Playgroud)


Kac*_*ers 5

我的项目中也有同样的错误。我正在隔离的内联网上工作,所以我的解决方案如下:

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


Jus*_*dow 5

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

只需运行以下命令:

npm clean-install
Run Code Online (Sandbox Code Playgroud)

笔记:

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


小智 5

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,可能适合你。试试你的运气。