[node.js] npm ERR cb ()는 호출되지 않았습니다

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 ()는 호출되지 않았습니다! npm ERR! 확인되지 않음 코드 정의되지 않은 npm ERR! cb ()는 호출되지 않았습니다! npm 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'

전에 코드를 Heroku로 푸시하는 데 아무런 문제가 없었습니다. 월요일 이후 로이 오류가 발생했습니다.

웹에서 비슷한 오류가 약간 다른 오류를 언급했지만 ! [remote rejected] master -> master (pre-receive hook declined)이전 에는 보지 못했습니다 .



답변

npm 버전 5 이상이있는 경우 먼저 다음을 시도하십시오.

$ sudo npm cache verify

그렇지 않으면:

$ sudo npm cache clean

내 노드 및 npm 버전은 다음과 같습니다.

$ node -v
v0.10.0

$ npm -v
1.2.14

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


답변

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"
}


답변

시험

sudo npm cache clean --force


답변

npm 캐시를 지우십시오.

sudo npm cache clean --force


답변

당신의 특정 버전이 있는가 "npm"에 지정된를 "engines"당신에 package.json? NPM v1.2.15와 같은 소리로 문제가 해결되었습니다 . 와 같은 문제가 발생했습니다 "1.1.x".


답변

중대한! 아래 솔루션은 이제 불안정한 것으로 간주되며 대신 노드 버전 관리를 사용해야합니다 . Github의 노드 버전 관리자 . David Walsh는 또한 NVM에 대한 좋은 소개를 제공 합니다. NVM은 아름답게 작동하며 몇 년 동안 레거시 WordPress 프로젝트를 관리하는 데 사용했습니다.


이것을 사용하지 마십시오-NVM을 사용하십시오

WordPress 용 Sage 테마를 설치하려고 할 때이 문제가 발생했습니다. npm install테마 디렉토리를 실행했을 때 실패했습니다.

의 종속성을 살펴보면 package.json노드에 대해 실행중인 엔진이 오래되었다는 것을 알 수 있습니다. node -v커맨드 라인에서 실행 하면 내가 v0.10.9에 있었고 최신 버전의 Sage가 0.12.0 이상이어야합니다.

여기에 그 해결책이 있습니다. 이 단계는 David Walsh의 블로그에 있습니다.

  1. npm 캐시를 지우십시오. sudo npm cache clean -f
  2. 최신 버전의 노드 헬퍼를 설치하십시오. sudo npm install -g n
  3. 헬퍼 (n)에게 최신 안정 버전의 노드를 설치하도록 지시하십시오. sudo n stable

그런 다음 진행률 표시가 나타나고 최신 상태가됩니다.

이 작업을 수행 npm install한 후 실행하면 모든 것이 제대로 작동 gulp했으며 초기 dist디렉토리 를 빌드하기 위해 실행할 수있었습니다 .


답변

각도 cli, npm, 노드를 업데이트 한 경우 추가 작업을 수행 할 필요가 없습니다. 아래 명령을 실행하여 문제를 해결하십시오. 이 명령은 또한 “예기치 않은 줄 끝”문제를 해결합니다.

npm install --no-package-lock