Ukuran tumpukan panggilan maksimum terlampaui pada instalasi npm

155

Saya mencoba menjalankan npm install, ini adalah output dari konsol:

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>

dan ini isi dari 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 ]

Dihapus node_modulesbeberapa kali dan mencoba menginstal ulang. Tidak dapat memahami alasan apa yang menyebabkan ini dan bagaimana cara memperbaikinya.

GROX13
sumber
1
Pertama-tama, saya akan memeriksa tautan masalah github untuk masalah yang sama, dan menambahkannya jika itu bukan masalah yang diketahui. Juga, mengapa Anda mencoba menginstal v4.2.6? Build terbaru saat ini adalah v7.1.0, dan build stabil yang disarankan adalah v6.9.1. Hapus semuanya, coba 6.9.1, dan perbarui pertanyaan.
TheEnvironmentalist
1
Diperbarui ke v6.9.1 masih memiliki kesalahan yang sama dan pertanyaan yang diperbarui juga. Bagaimanapun
GROX13
1
Beberapa saran di sekitar sini github.com/npm/npm/issues/10776
Boris Charpentier
im kasus saya, ini disebabkan karena pernyataan rekursif dalam package.json;)
Alberto S.
dalam kasus saya, itu disebabkan karena saya kehilangan koneksi internet
RayJ_inSJ

Jawaban:

96

jawaban metzelder membantu saya memperbaiki masalah ini. namun jika Anda menjalankan perintah npm cache clean, itu akan memberi Anda pesan

Pada npm @ 5, cache npm menyembuhkan sendiri dari masalah korupsi dan data yang diekstrak dari cache dijamin valid

Jadi, pada npm5 Anda dapat melakukannya dengan menambahkan --forceflag pada perintah.

Jadi perintahnya adalah:

npm cache clean --force
Djangodude
sumber
143
Saya harap Anda tahu apa yang Anda lakukan.
CloudMeta
1
Sedangkan saya, saya telah memindahkan direktori kerja saat ini ke folder lain - sepertinya tercampur npm. Menghapus node_modules dan menginstal ulang melakukan trik
Philippe Hebert
10
@MetaGuru tolong jelaskan apa konsekuensi menjalankan perintah ini ...
cdalxndr
3
@CTS_AE Saya tidak berpikir tim npm menambahkan pesan itu sebagai lelucon. Harus ada konsekuensi dan seseorang harus menjelaskannya.
cdalxndr
2
@cdalxndr saya mengatakan bahwa itu dibiarkan sebagai komentar sebagai lelucon / sindiran, sebagai kutipan langsung dari npmdia tidak benar-benar menambahkan sesuatu yang membantu, tetapi lebih dari sebuah meme pada saat ini. Anda dapat membaca lebih lanjut tentang perintah aktual di sini: docs.npmjs.com/cli-commands/cache.html secara eksplisit menjelaskan apa yang dilakukan kekuatan; bahwa semua item cache sekarang sepenuhnya diverifikasi untuk integritas mereka, jika ada sesuatu yang rusak itu akan sembuh sendiri, sehingga cache harus selalu dalam keadaan yang tepat dan tidak pernah dihapus kecuali jika Anda mencoba untuk merebut kembali ruang disk, sehingga Anda perlu menambahkan --force. Catatan: Dapat bervariasi per versi.
CTS_AE
83

npm rebuild itu telah memecahkan masalah saya

YYY
sumber
31
Adakah yang bisa menjelaskan jawaban ini lebih lanjut? Mengapa ini menyelesaikan masalah?
Patrick Szalapski
3
paket-lock.json dihapus dan npm membangun kembali melakukan trik untuk saya
Temui Patel
dalam kasus saya, file-file tertentu dalam folder .npm saya diinstal sebagai root. verifikasi npm cache memberi tahu Anda apa yang salah.
kirenpillay
Ini berhasil. cache npm bersih tidak berfungsi pada kesempatan ini.
Shiva Naru
43

Coba hapus package-lock.jsondan node-modulesfoldernya:

rm package-lock.json
rm -r node_modules
Марат Зимнуров
sumber
14
Anda mematikan tujuan package-lock.json jika Anda menghapusnya. Ini menjamin bahwa dependensi Anda akan menjadi deterministik.
Eliseu Monar dos Santos
5
Benar, tetapi jika Anda tidak dapat menginstal aplikasi pada platform yang berbeda, maka Anda tidak punya pilihan selain melakukan ini.
Marc
19

Saya memiliki masalah yang sama dengannya npm install. Setelah banyak pencarian, saya menemukan bahwa menghapus .npmrcfile Anda atau kontennya (ditemukan di %USERPROFILE%/.npmrc), akan menyelesaikan masalah ini. Ini berhasil untuk saya.

Arwa S k
sumber
13
npm uninstall

npm cache clean --force

Saya menggunakan dua metode ini tetapi tidak berhasil. Setelah saya menghapus modul simpul dan lagi npm menginstal tetapi tidak berhasil lagi. Terakhir saya menghapus package-lock.json dan membuat file package-lock.json baru setelah itu menggunakan

npm install

dan oke !!!

Kerim Kuşcu
sumber
5
Menghapus file package-lock.json memperbaikinya untuk saya, Terima kasih!
Ryan Wilson
11

Saya telah mengatasi masalah ini dengan melakukan hal berikut:

  • Hapus semua konten dependensi npm. Anda dapat menemukan lokasi pemasangan default berdasarkan utas ini: https://stackoverflow.com/a/5926706/1850297

  • Sebelum Anda menjalankan npm installperintah, saya sarankan untuk menjalankannpm cache clean --force

metzelder
sumber
Pesan dari npm cache clean: "Pada npm @ 5, cache npm menyembuhkan sendiri dari masalah korupsi dan data yang diekstrak dari cache dijamin valid."
Ian Grainger
7

saya menghapus

node_modules

dan kemudian diinstal ulang oleh

npm instal

Ini berhasil untuk saya

Umair Khalid
sumber
2
cukup lucu saya harus me-restart, komputer saya selain langkah-langkah Anda agar berfungsi, karena saya bekerja dengan wsl
Avshalom
7

Dalam kasus saya, perbarui ke versi terbaru:

npm install -g npm

AvantContra
sumber
5

Saya baru npm rebuildsaja bekerja seperti pesona.

Gopi P
sumber
3

cache npm bersih kembali di bawah pesan

Pada npm @ 5, cache npm menyembuhkan sendiri dari masalah korupsi dan data yang diekstrak dari cache dijamin valid. Jika Anda ingin memastikan semuanya konsisten, gunakan 'npm cache verifikasi'. Di sisi lain, jika Anda men-debug masalah dengan installer, Anda dapat menggunakan npm install --cache /tmp/empty-cacheuntuk menggunakan cache sementara alih-alih nuking yang sebenarnya.

jika Anda menjalankan verifikasi npm cache seperti yang ditentukan di atas sebenarnya menjalankan verifikasi cache dan pengumpulan sampah yang memperbaiki masalah

Cache diverifikasi dan dikompresi (~ \ AppData \ Roaming \ npm-cache_cacache): Konten diverifikasi: 6183 (447214684 bytes) Konten yang dikumpulkan sampah: 16 (653745 bytes) Entri indeks: 9633

Synster
sumber
Ini cukup bagiku. npm cache memverifikasi memperbaiki masalah dengan cara yang tidak menghapus node_modules. (Dan saya tidak akan mem-cache cache atau package-lock.json). Cukup yakin ini adalah masalah dengan npm. Tidak dapat melihat mengapa npm cache memverifikasi akan mengubah apa pun jika benar-benar sembuh sendiri.
Stuart Watt
3

Masalah ini juga dapat terjadi jika Anda mencoba menginstal paket yang tidak ada atau jika Anda mencoba menginstal versi yang tidak ada.

Melchia
sumber
2

Anda menghapus paket npm dan memaksa membersihkan cache dan menutup terminal dan menginstal ulang paket mana pun.

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

Kemudian restart terminal dan periksa

Masih tidak berfungsi, tingkatkan npm dan node ke versi terbaru

Gajendra KS
sumber
2

Jika tidak ada jawaban yang sesuai untuk Anda, itu mungkin karena terminal yang Anda gunakan bukan yang benar / Anda node_modulesdigunakan oleh bagian lain dari komputer Anda.

Dalam kasus saya, saya terus berbelok di antara kesalahan ini (ukuran tumpukan panggilan melebihi) dan acara kesalahan akses ketika saya melakukan a sudo npm i.

Cara mengatasinya adalah dengan menutup IDE saya (yang merupakan webstorm), berjalan npm idi terminal dasar, dan hanya itu.

Jonathan Simonney
sumber
Menutup editor memperbaikinya untuk saya. (Netbeans for me)
Wim Pruiksma
2

Saya bukan pengguna Windows , jadi jika ya, coba periksa komentar Rene Knop .

Untuk Unix / OSX pengguna, saya telah menghapus akar .npmrc berkas ~/.npmrc.
Sebelum Anda akan mencobanya, silahkan , periksa apakah ada yang diperlukan di sana Anda dapat menggunakan perintah ini untuk membawa semua konten ke terminal Anda: cat ~/.npmrc.

Jika Anda punya sesuatu seperti:

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

untuk menyimpan salinan:

cp ~/.npmrc ~/.npmrc_copy

Sekarang, cobalah untuk menghapusnya (Berfungsi untuk pengguna bash: Unix / Ubuntu / OSX ...):

rm -f ~/.npmrc

Ini berhasil untuk saya.
Semoga ini bermanfaat bagi orang lain.

naorz
sumber
2

Saya memecahkannya 100% saya punya masalah dengan versi tegukan: 3.5.6.

Anda harus membersihkan package-lock.js dan kemudian jalankan npm installdan itu berfungsi bentuk

Hidayat Arghandabi
sumber
2

Saya juga punya masalah yang sama. Saya sudah mencoba solusi sebelumnya, tetapi solusi bagi saya jauh lebih sederhana. Saya hanya perlu menghapus ruang di direktori dan kemudian jalankannpm i lagi

Terima kasih kepada: https://github.com/nodejs/node-gyp/issues/809#issuecomment-155019383 karena menunjukkan ini.

pavlkara1
sumber
1

Saya mencoba segalanya untuk memperbaiki masalah ini di Mac saya. Saya pikir masalah dimulai ketika saya sudah mengunduh npm dari Node.js dan kemudian menginstalnya kembali dengan Homebrew sambil mengikuti bersama dengan video Team Treehouse.

Inilah yang saya coba:

Dari 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*

Dari Bagaimana cara menghapus instalan Node.js sepenuhnya, dan menginstal ulang dari awal (Mac OS X)

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

Inilah yang berhasil:

Pada akhirnya, satu-satunya hal yang berhasil bagi saya adalah mengkloning repo npm-instal ulang dari GitHub yang sepenuhnya menghapus semua yang berhubungan dengan npm di Mac saya.

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

Saya kemudian harus menginstal ulang node dan npm dari Node.js.

Caleb Spindler
sumber
1

Lingkungan pengembangan perusahaan kami digunakan Artifactorysebagai registri default untuk dependensi NPM kami, dan ketika menjalankannya npm installadalah default, ini tidak berfungsi ... jadi secara manual tentukan registri npm utama melalui perbaikan npm install --registry https://registry.npmjs.orgmasalah ini untuk saya ...

Joshua Barker
sumber
1

Saya menghadapi kesalahan yang sama, saya mencoba menginstal lelucon ke salah satu paket dalam proyek monorepo.

Jika Anda menggunakan Benang + Learna untuk mengemas proyek monorepo, Anda harus menavigasi ke package.json di dalam paket target dan kemudian jalankan npm installatau npm install <package name>.

Shrivathsa
sumber
0

Saya punya masalah ini dan itu karena upgrade dari executable git saya. Saya kembali ke Git-2.21.0.rc1.windows.1-64-bit dan menambahkan ini ke jalur lingkungan saya dan itu memperbaiki masalah saya.

Finchy70
sumber
0

Saya mencoba segalanya untuk memperbaiki masalah ini pada mesin windows 7 saya seperti

Menginstal ulang dan membangun kembali npm

Akhirnya, saya memperbaiki masalah pengaturan konfigurasi kecil ini dengan menghabiskan seluruh hari saya.

Bagaimana saya mengatasi masalah ini

Menghapus konfigurasi spesifik proyek saya di global .npmrc di lokasi seperti drive: / Windows / Users /../. Npmrc

Rajashekhar Reddy
sumber
0

Satu hal yang akhirnya berhasil bagi saya di Mac adalah memutakhirkan dari node 8.12 ke 10.x menggunakan NVM.

Saya menghapus semua versi Node dengan NVM, kemudian menginstal 10.x, lalu berlari nvm alias default node, yang memberitahu NVM untuk selalu default ke versi node terbaru yang tersedia pada sebuah shell.

Setelah itu, masalah reload langsung saya hilang!

bildungsroman
sumber
0

Beralih ke benang memecahkan masalah bagi saya.

vgaltes
sumber
0

Bagi mereka yang memiliki masalah ini ketika membangun gambar Docker dengan Jenkins (atau CI apa pun), pastikan package-lock.jsonjuga disalin ke wadah.

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

Bagi kami, instal benar-benar berjalan dengan baik, kesalahan hanya terjadi ketika berjalan npm prune productionuntuk gambar produksi.

Adam Eri
sumber
Saya punya masalah dengan npm prune dan NODE_ENV tidak diatur ke produksi. Dipecahkan dengan menghapus node_modules dan instal npm lagi
Eduardo
0

Jika registri npm default Anda adalah sesuatu selain dari repositori npm publik (Anda dapat memeriksanya dengan membuka file .npmrc Anda atau memeriksa konfigurasi npm Anda melalui perintah npm CLI), Anda dapat mencoba menghapus konfigurasi registri sehingga menunjuk kembali ke publik repositori npm. Lalu larinpm install lagi.

Jika Anda memiliki dependensi yang tidak tersedia di repositori npm publik, coba hapus sementara dependensi itu dari package.json. Ini akan memungkinkan Anda untuk menjalankan npm install. Terakhir, kembalikan konfigurasi dependensi dan registri yang Anda hapus dan jalankan npm installterakhir kali untuk menginstal sisa dependensi Anda.

Xchai
sumber
0

Hari ini kami mengalami kesalahan ini ketika menjalankan npm prunebahkan setelah menjalankan npm cache clean --force.

Versi:

node 13.8.0 
npm 6.13.6

Menghapus yang package-lock.jsonberhasil untuk kasus ini juga. Terima kasih semua!

Jeff Hampton
sumber
0

Saya menghadapi kesalahan serupa. Saya melacaknya dengan fakta bahwa npm tidak dapat menghapus file dari folder .bin untuk folder yang memiliki tautan npm. Jadi saya masuk dan rm -rf semua folder .bin dari folder npm link'd.

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

Itu menyelesaikan masalah.

nishant
sumber
0

Saya menemukan masalah yang sama tetapi dalam kasus saya saya telah menggunakan yarndari awal tetapi dari beberapa paket readme saya menyalin npm installperintah dan mendapatkan kesalahan ini. Kemudian disadari bahwa yarn add <package-name>menyelesaikan masalah dan paket diinstal.

Mungkin membantu seseorang di masa depan.

necixy
sumber
0

Langkah-langkah berikut membantu saya untuk mengatasi masalah ini:

  1. Hentikan semua strip reaksi (misalnya mulai membangun)
  2. Lari npm cache clean --force
  3. Lari npm install
ATQSHL
sumber
0
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches

bekerja untuk saya di Ubuntu.

Dionis Oros
sumber