npm 설치시 최대 호출 스택 크기를 초과했습니다


155

을 실행하려고하는데 npm install콘솔에서 출력됩니다.

npm ERR! Linux 4.8.0-27-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8

npm ERR! Maximum call stack size exceeded
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

이 내용은 npm-debug.log다음 과 같습니다.

113791 verbose stack RangeError: Maximum call stack size exceeded
113791 verbose stack     at Object.color (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings/index.js:115:32)
113791 verbose stack     at EventEmitter.log._format (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:252:51)
113791 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:138:24)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113791 verbose stack     at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113791 verbose stack     at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113792 verbose cwd /home/giorgi/AdMove/dev/web-advertiser-admove
113793 error Linux 4.8.0-27-generic
113794 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
113795 error node v6.9.1
113796 error npm  v3.10.8
113797 error Maximum call stack size exceeded
113798 error If you need help, you may report this error at:
113798 error     <https://github.com/npm/npm/issues>
113799 verbose exit [ 1, true ]

node_modules여러 번 제거 하고 다시 설치하려고했습니다. 원인의 원인과 해결 방법을 이해할 수 없습니다.


1
우선, 비슷한 문제가 있는지 github issues 링크를 확인하고 알려진 문제가 아닌 경우 추가합니다. 또한 v4.2.6을 설치하려고하는 이유는 무엇입니까? 현재 최신 빌드는 v7.1.0이고 권장되는 안정적인 빌드는 v6.9.1입니다. 모든 내용을 지우고 6.9.1을 시도한 후 질문을 업데이트하십시오.
TheEnvironmentalist

1
v6.9.1로 업데이트해도 여전히 동일한 오류가 발생하고 질문도 업데이트되었습니다. 어쨌든 감사합니다 TheEnvironmentalist
GROX13

1
여기 주위에 몇 가지 조언 github.com/npm/npm/issues/10776
보리스 CHARPENTIER

내 경우, 이것은 package.json에서 재귀 선언으로 인해 발생했습니다.)
Alberto S.

나는 인터넷 연결을 잃었습니다 때문에 내 경우에는, 그것은 원인이되었다
RayJ_inSJ

답변:


98

metzelder의 답변으로 문제를 해결하는 데 도움이되었습니다. 그러나 명령을 실행하면 npm cache clean메시지가 표시됩니다.

npm @ 5부터 npm 캐시는 손상 문제로부터 자체 치유되며 캐시에서 추출 된 데이터는 유효합니다.

따라서 npm5부터는 --force명령에 플래그를 추가하여 수행 할 수 있습니다 .

따라서 명령은 다음과 같습니다.

npm cache clean --force

144
나는 당신이 무엇을하고 있는지 알고 있기를 바랍니다.
CloudMeta

1
나는 현재 작업 디렉토리를 다른 폴더로 옮겼습니다. npm이 섞인 것처럼 보입니다. node_modules 삭제하고 다시 설치하는 트릭
Philippe Hebert

10
@MetaGuru이 명령을 실행 한 결과가 무엇인지 설명해주세요.
cdalxndr

3
@CTS_AE npm 팀이 그 메시지를 농담으로 추가했다고 생각하지 않습니다. 결과가 있어야하며 누군가 설명해야합니다.
cdalxndr

2
@ cdalxndr 나는 그것이 농담 / 풍자로서의 주석으로 남겨 졌다고 말하고 npm있었다. 실제 명령에 대한 자세한 내용은 docs.npmjs.com/cli-commands/cache.html 에서 확인할 수 있습니다 . 모든 캐시 항목이 이제 무결성에 대해 완전히 검증되었으므로 무언가 손상되면 자체 치유되므로 캐시는 항상 올바른 상태에 있어야하며 디스크 공간을 확보하려고 시도하지 않는 한 캐시를 지우지 않아야합니다. 따라서 추가해야합니다. --force. 참고 : 버전마다 다를 수 있습니다.
CTS_AE

84

npm rebuild 내 문제를 해결했다


31
누구 든지이 답변을 더 설명 할 수 있습니까? 이것이 왜 문제를 해결합니까?
Patrick Szalapski

3
패키지 lock.json을 삭제하고 나를 위해 트릭했다 다시 NPM
만나 파텔

제 경우에는 .npm 폴더의 특정 파일이 루트로 설치되었습니다. npm cache verify는 무엇이 잘못되었는지 알려줍니다.
kirenpillay

이 트릭을했다. 이 경우 npm 캐시 정리가 작동하지 않았습니다.
시바 나루

43

제거 시도 package-lock.jsonnode-modules폴더를 :

rm package-lock.json
rm -r node_modules

14
package-lock.json을 삭제하면 목적이 없어집니다. 의존성이 결정적임을 보장합니다.
엘리 쥬 Monar 도스 산토스

5
사실, 다른 플랫폼에 앱을 설치할 수 없다면이 작업을 수행 할 수밖에 없습니다.
Marc

19

와 같은 문제가 npm install있었습니다. 많은 검색을 한 결과 .npmrc파일 또는 파일의 내용 () 을 제거 %USERPROFILE%/.npmrc하면이 문제가 해결 될 것입니다. 이것은 나를 위해 일했습니다.


13
npm uninstall

npm cache clean --force

이 두 가지 방법을 사용하고 있지만 작동하지 않았습니다. 노드 모듈을 삭제하고 다시 npm을 설치 한 후 다시 작동하지 않습니다. 마지막으로 package-lock.json을 삭제하고 그 후 다음을 사용하여 새로운 package-lock.json 파일을 만듭니다.

npm install

그리고 좋아 !!!


5
package-lock.json 파일을 삭제하면 해결되었습니다. 감사합니다!
Ryan Wilson

11

다음을 수행 하여이 문제를 극복했습니다.

  • npm 종속성의 모든 내용을 삭제하십시오. 이 스레드에 따라 기본 설치 위치를 찾을 수 있습니다 : https://stackoverflow.com/a/5926706/1850297

  • npm install명령 을 실행하기 전에 다음을 실행 하는 것이 좋습니다.npm cache clean --force


메시지 npm cache clean: "npm @ 5부터 npm 캐시는 손상 문제로부터 자동 복구되며 캐시에서 추출 된 데이터는 유효합니다."
Ian Grainger

7

삭제 했어

node_modules

에 의해 다시 설치

npm 설치

그것은 나를 위해 일했다


2
내가 wsl과 함께 일하고 있기 때문에 재밌게 내가 다시 시작해야 내 컴퓨터를 작동하기 위해 당신의 단계뿐만 아니라
Avshalom



3

npm 캐시 정리는 아래 메시지를 반환합니다.

npm @ 5부터 npm 캐시는 손상 문제로부터 자동 복구되며 캐시에서 추출 된 데이터는 유효합니다. 모든 것이 일관되게하려면 대신 'npm cache verify'를 사용하십시오. 반면, 설치 프로그램과 관련된 문제를 디버깅하는 npm install --cache /tmp/empty-cache경우 실제 캐시를 숨기는 대신 임시 캐시를 사용하는 데 사용할 수 있습니다 .

위에서 지정한대로 npm cache verify를 실행하면 실제로 캐시 확인 및 가비지 수집을 실행하여 문제를 해결합니다.

캐시 확인 및 압축 (~ \ AppData \ Roaming \ npm-cache_cacache) : 확인 된 콘텐츠 : 6183 (447214684 바이트) 가비지 수집 된 콘텐츠 : 16 (653745 바이트) 인덱스 항목 : 9633


이것으로 충분했습니다. npm 캐시 확인은 node_modules를 제거하지 않는 방식으로 문제를 해결했습니다. (그리고 캐시 또는 package-lock.json을 압축하지는 않았습니다). 그래도 이것은 npm의 문제입니다. npm 캐시 확인이 실제로자가 치유 된 경우 변경되는 이유를 알 수 없습니다.
스튜어트 와트

3

존재하지 않는 패키지를 설치하려고하거나 존재하지 않는 버전을 설치하려는 경우에도이 문제가 발생할 수 있습니다.


2

npm 패키지를 제거하고 캐시를 강제로 정리하고 터미널을 닫은 다음 패키지를 다시 설치하십시오.

$sudo npm uninstall <package - name>
$sudo npm cache clean --force

그런 다음 터미널을 다시 시작하고 확인하십시오.

여전히 npm과 node를 최신 버전으로 업그레이드하지 않습니다.


2

위의 답변 중 어느 것도 효과가없는 경우, 사용중인 터미널이 올바른 것이 아니 node_modules거나 컴퓨터의 다른 부분에서 사용 하기 때문일 수 있습니다 .

내 경우에는이 오류 (최대 호출 스택 크기 초과)와 액세스 오류 이벤트 사이에서 jungling을 계속했습니다 sudo npm i.

수정 사항은 내 IDE (웹 스톰)를 닫고 npm i기본 터미널에서 실행 하는 것이 었습니다.


편집기를 닫으면 문제가 해결되었습니다. (Netbeans for me)
Wim Pruiksma

2

저는 Windows 사용자 가 아니므로 Rene Knop comment 를 확인하십시오 .

를 들어 유닉스 / OSX의 사용자, 나는 루트 삭제 한 .npmrc의 파일을 ~/.npmrc.
당신이 그것을 시도거야 전에, 제발 당신이 당신의 단자에 모든 내용을 가지고이 명령이 사용할 수 이상 필요한 것이없는 경우, 확인하십시오 cat ~/.npmrc.

다음과 같은 것이 있다면 :

cat: /Users/$USER/.npmrc: No such file or directory

사본을 저장하려면 :

cp ~/.npmrc ~/.npmrc_copy

이제 그것을 제거하십시오 (bash 사용자를위한 작품 : Unix / Ubuntu / OSX ...) :

rm -f ~/.npmrc

이것은 나를 위해 일했습니다.
이것이 다른 사람들에게 도움이되기를 바랍니다.


2

나는 그것을 100 % 해결했습니다. 걸프 버전 에서이 문제가 발생했습니다 : 3.5.6.

package-lock.js를 정리 한 다음 실행하면 npm install작동합니다.



1

Mac에서이 문제를 해결하기 위해 모든 것을 시도했습니다. Node.js에서 이미 npm을 다운로드 한 다음 Team Treehouse 비디오와 함께 Homebrew로 다시 설치했을 때 문제가 시작되었다고 생각합니다.

내가 시도한 것은 다음과 같습니다.

에서 https://docs.npmjs.com/misc/removing-npm

sudo npm uninstall npm -g
sudo make uninstall
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*

에서 어떻게 완전히 Node.js를 제거 I를 수행하고 처음부터 다시 설치 (맥 OS X)

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

다음은 효과가 있습니다.

결국, 나를 위해 일한 유일한 것은 GitHub에서 npm-reinstall repo를 복제하여 내 Mac에서 npm과 관련된 모든 것을 완전히 제거하는 것입니다.

https://github.com/brock/node-reinstall

그런 다음 Node.js에서 node와 npm을 다시 설치해야했습니다.


1

우리 회사 개발 환경은 ArtifactoryNPM 의존성에 대한 기본 레지스트리로 사용 하며, 실행할 때 작동 npm install하지 않는 것으로 기본 설정 npm install --registry https://registry.npmjs.org되었습니다.


1

동일한 오류가 발생하여 monorepo 프로젝트의 패키지 중 하나에 jest를 설치하려고했습니다.

Yarn + Learna를 사용하여 monorepo 프로젝트를 패키징하는 경우 대상 패키지 내부에서 package.json으로 이동 한 다음 npm install또는 을 실행해야 npm install <package name>합니다.


0

이 문제가 있었고 git 실행 파일이 업그레이드 되었기 때문입니다. Git-2.21.0.rc1.windows.1-64-bit로 롤백하고 이것을 내 환경 경로에 추가했는데 문제가 해결되었습니다.


0

내 Windows 7 컴퓨터 에서이 문제를 해결하기 위해 모든 것을 시도했습니다.

npm 재설치 및 재 구축

마침내 나는 하루 종일 낭비 함으로써이 작은 구성 설정 문제를 해결했습니다.

이 문제를 해결하는 방법

drive : / Windows / Users /../. npmrc와 같은 위치에서 전역 .npmrc에서 프로젝트 특정 구성 제거


0

Mac에서 마침내 나를 위해 일한 한 가지는 NVM을 사용하여 노드 8.12에서 10.x로 업그레이드하는 것이 었습니다.

NVM을 사용하여 다른 모든 버전의 Node를 제거한 다음 10.x를 설치 한 다음 run을 실행 nvm alias default node하여 NVM이 항상 쉘에서 사용 가능한 최신 노드 버전을 기본값으로 지정합니다.

그 후 라이브 리로딩 문제가 사라졌습니다!


0

원사로 전환하면 문제가 해결되었습니다.


0

Jenkins (또는 모든 CI)로 Docker 이미지를 빌드 할 때이 문제가있는 경우 package-lock.json컨테이너에 복사해야합니다.

COPY ./src/package*.json /home/node/
RUN npm install

우리에게는 실제로 설치가 잘 npm prune production되었으며 프로덕션 이미지를 실행할 때만 오류가 발생했습니다 .


npm prune 및 NODE_ENV가 프로덕션으로 설정되지 않은이 문제가 있습니다. node_modules 및 npm 설치를 다시 제거하여 해결
Eduardo

0

기본 npm 레지스트리가 공개 npm 저장소가 아닌 경우 (.npmrc 파일로 이동하거나 npm CLI 명령을 통해 npm 구성을 확인하여 확인할 수 있음) 레지스트리 구성을 해제하여 다시 공용으로 지정하도록 시도하십시오. npm 저장소. 그런 다음 npm install다시 실행 하십시오.

공개 npm 저장소에서 사용할 수없는 종속성이있는 경우 package.json에서 해당 종속성을 일시적으로 제거하십시오. 이렇게하면 실행할 수 있습니다 npm install. 마지막으로, 제거한 종속성 및 레지스트리 구성을 되돌리고 마지막으로 npm install한 번 실행 하여 나머지 종속성을 설치하십시오.


0

오늘도 npm prune짝수 실행 시이 오류가 발생했습니다. 을 실행하는 npm cache clean --force.

버전 :

node 13.8.0 
npm 6.13.6

package-lock.json이 경우에도 작업을 삭제합니다 . 다들 감사 해요!


0

비슷한 오류가 발생했습니다. npm이 npm 링크의 폴더에 대한 .bin 폴더에서 파일을 삭제할 수 없다는 사실까지 추적했습니다. 그래서 npm 링크의 폴더에서 모든 .bin 폴더를 rm -rf로 가져갔습니다.

find "linked-folder" -type d -name ".bin" -print  
For all folders listed | rm -rf  

문제가 해결되었습니다.


0

나는 같은 문제에 직면했지만 내 경우에는 yarn처음부터 사용했지만 일부 패키지 readme에서 npm install명령을 복사 하고이 오류가 발생했습니다. 나중에 깨달았습니다yarn add <package-name> 문제 해결하고 패키지가 설치 .

나중에 누군가를 도울 수 있습니다.


0

다음 단계에 따라이 문제를 해결하는 데 도움이되었습니다.

  1. 모든 반응 스트립 중지 (예 : 빌드 시작)
  2. 운영 npm cache clean --force
  3. 운영 npm install

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.