302

I'm trying to run npm install, this is output from console:

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>

and this is content of 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 ]

Removed node_modules several times and tried to reinstall. Can't understand what's the reason that causes this and how to fix it.

6
  • 1
    First of all, I'd check the github issues link for similar problems, and add it if it's not a known problem. Also, why are you trying to install v4.2.6? The current latest build is v7.1.0, and the recommended stable build is v6.9.1. Clear everything out, try 6.9.1, and update the question. Commented Nov 12, 2016 at 18:44
  • 2
    Updated to v6.9.1 still got same error and updated question also. Thanks anyway TheEnvironmentalist
    – GROX13
    Commented Nov 12, 2016 at 18:58
  • 1
    Some advice around here github.com/npm/npm/issues/10776 Commented Nov 12, 2016 at 19:11
  • 2
    im my case, this was caused due to a recursive declaraion in package.json ;)
    – Alberto S.
    Commented Mar 6, 2020 at 9:14
  • 3
    in my case, it was caused because I had lost internet connection
    – RayJ_inSJ
    Commented May 15, 2020 at 21:07

45 Answers 45

180

metzelder's answer helped me fix the issue. however if you run the command npm cache clean, it will give you a message

As of npm@5, the npm cache self-heals from corruption issues and data extracted from the cache is guaranteed to be valid

So, as of npm5 you can do by adding a --force flag to the command.

So the command is:

npm cache clean --force
10
  • 4
    As for me I had move the current working directory to another folder – seems like it mixed up npm. Deleting node_modules and reinstalling did the trick Commented Jun 11, 2019 at 21:42
  • 21
    @MetaGuru please explain what are the consequences of running this command...
    – cdalxndr
    Commented Mar 3, 2020 at 16:28
  • 6
    @CTS_AE I don't think the npm team added that message as a joke. There must be a consequence and someone should explain it.
    – cdalxndr
    Commented Apr 20, 2020 at 15:45
  • 4
    @cdalxndr I was saying that it is left as a comment as a joke/satire, as a direct quote from npm he wasn't really adding anything helpful, but more of a meme at this point. You can read more about the actual command here: docs.npmjs.com/cli-commands/cache.html it explicitly explains what force does; that all cache items are now fully verified for their integrity, if something is corrupt it will self heal, thus the cache should always be in a proper state and never cleared unless you're trying to reclaim disk space, thus you will need to append --force. Note: May vary per version.
    – CTS_AE
    Commented Apr 20, 2020 at 21:45
  • 4
    TLDR; it will actually delete the cache like it's supposed to. Later dependency installs might go slower until re-cached.
    – CTS_AE
    Commented Apr 20, 2020 at 22:03
149

npm rebuild it has solved my problem

6
  • 50
    Can anyone explain this answer further? Why does this solve the problem? Commented Mar 27, 2019 at 13:02
  • 4
    deleted package-lock.json and npm rebuild did the trick for me
    – Meet Patel
    Commented Aug 8, 2019 at 10:07
  • in my case, certain files in my .npm folder were installed as root. npm cache verify tells you what is wrong. Commented Nov 17, 2019 at 7:34
  • This did the trick. npm cache clean did not work on this occasion.
    – Shiva Naru
    Commented Jun 1, 2020 at 19:26
  • 2
    from the official docs: > This command runs the npm build command on the matched folders. This is useful when you install a new version of node, and must recompile all your C++ addons with the new binary.
    – vivekmore
    Commented Oct 10, 2020 at 12:08
98

Try removing package-lock.json and the node_modules folder:

rm package-lock.json
rm -r node_modules
7
  • 34
    You're killing the purpose of package-lock.json if you delete it. It guarantees that your dependencies will be deterministic. Commented Aug 12, 2019 at 2:16
  • 14
    True, but if you can't install your app on say a different platform, then you have no choice but to do this.
    – Marc
    Commented Oct 12, 2019 at 7:42
  • 4
    npm install should restore the package-lock.json file anyway
    – kip2
    Commented Sep 3, 2020 at 20:46
  • FWIW, these commands should be run inside your functions folder. I made the mistake of running it in the root folder
    – kip2
    Commented Oct 15, 2020 at 11:04
  • 5
    @kip2 It will produce a new package-lock.json, but not necessarily the same one as new versions of dependencies may be available since it was last created. It's possible that one of these new versions could break things. Commented Dec 14, 2020 at 20:24
29

I had the same issue with npm install. After a lot of search, I found out that removing your .npmrc file or its content (found at %USERPROFILE%/.npmrc), will solve this issue. This worked for me.

1
  • For me this file was in: %ProgramFiles%\nodejs\node_modules\npm
    – Pavel
    Commented Nov 17, 2022 at 19:13
28
npm uninstall

npm cache clean --force

I tried these two methods but they didn't work. After, I deleted the node_modules directory and ran npm install again, it still didn't work. Lastly, I deleted package-lock.json and created a new package-lock.json file using

npm install
4
  • 8
    Deleting the package-lock.json file fixed it for me, Thanks! Commented Mar 21, 2019 at 15:57
  • I sure hope you know what you are doing. Commented Feb 20, 2021 at 9:02
  • You don't have to do. @Ibrahimshamma Commented Feb 22, 2021 at 7:25
  • This one helped me too, Thanks
    – d.c
    Commented Sep 1, 2021 at 19:26
22

I have overcome this issue by doing following:

  • Delete all the content of the npm dependencies. You can find the default install location according to this thread: https://stackoverflow.com/a/5926706/1850297

  • Before you run npm install command, I suggest to run npm cache clean --force

1
  • Message from npm cache clean: "As of npm@5, the npm cache self-heals from corruption issues and data extracted from the cache is guaranteed to be valid." Commented Jul 3, 2018 at 8:57
17

In my case, update to the newest version:

npm install -g npm

17

npm rebuild will work for sure

4
  • 6
    What does this do and how does it solve the problem?
    – Menasheh
    Commented Jun 23, 2021 at 22:04
  • "for sure" might be a little strong Commented Aug 31, 2022 at 19:51
  • @Menasheh npm install will install all packages and its dependencies from package json file and build it. if any dependent build failed then npm install won't stop, instead it get succeeded. but in the case of npm rebuild, it uses when you upgrade the node version and this command will rebuild the c++ addon from the beginning I mean new binary so it fixes the issue. even after this if the issue did not fix then delete package-lock file and try
    – Gopi P
    Commented Sep 9, 2022 at 14:35
  • @Menasheh note npm rebuild fail when any dependent addon build failure also
    – Gopi P
    Commented Sep 9, 2022 at 14:38
14

I deleted

node_modules

and then reinstalled by

npm install

It worked for me

3
  • 4
    funny enough i had to restart ,my computer in addition to your steps for it to work, since i am working with wsl Commented Nov 18, 2019 at 12:44
  • This worked for me, but none of the other solutions did Commented Aug 18, 2020 at 11:09
  • @Avshalom THIS! For all people who run into this issue using WSL2! Commented Dec 2, 2021 at 11:16
12

I have also faced the same problem and this is how i resolved it.

  1. First of all you need to make sure that your node and npm versions are up to date. if not please upgrade your node and npm packages to latest versions.

    nvm install 12.18.3 // update node version through node version manager
    
    npm install npm // update your npm version to latest
    
  2. Delete your node_modules folder and package-lock.json file.

  3. Force clean the entire NPM cache by using following comand.

    npm cache clean --force
    
  4. Re-Install all the dependencies.

    npm install
    
  5. If above step didn't resolve your problem, try to re-install your dependencies after executing following command.

    npm rebuild
    
2
  • I am unable to delete node_modules. I've had this occur twice. First time I had to npm eject, but I still had a few folders I could never remove common-tags, react-dev-utils, and stream-browserify. Commented Mar 18, 2021 at 13:03
  • npm install npm will install npm locally, which might not be what you intended. You'll want npm install -g npm to install it globally, overwriting the nvm installed version.
    – Robotnik
    Commented Feb 14 at 4:11
6

This issue can also happen if you're trying to install a package that doesn't exist or if you're trying to install a version that doesn't exist.

2
  • how do I know which one it is, if I install numbers of them?
    – Dima Malko
    Commented Aug 8, 2022 at 9:13
  • You need to check one by one. I use the extension version in vscode to see the latest version of each package
    – Melchia
    Commented Aug 8, 2022 at 15:56
5

npm cache clean returns below message

As of npm@5, the npm cache self-heals from corruption issues and data extracted from the cache is guaranteed to be valid. If you want to make sure everything is consistent, use 'npm cache verify' instead. On the other hand, if you're debugging an issue with the installer, you can use npm install --cache /tmp/empty-cache to use a temporary cache instead of nuking the actual one.

If you run npm cache verify, as specified above, then it actually runs cache verification and garbage collection which fixes the problem.

Cache verified and compressed (~\AppData\Roaming\npm-cache_cacache): Content verified: 6183 (447214684 bytes) Content garbage-collected: 16 (653745 bytes) Index entries: 9633

1
  • This was enough for me. npm cache verify fixed the issue in a way that removing node_modules didn't. (And I wasn't going to nuke the cache or package-lock.json). Pretty sure this is an issue with npm, though. Can't see why npm cache verify would change anything if it truly did self-heal. Commented Mar 5, 2020 at 15:19
5

TLDR

For those of you using NVM, make sure you're using the right version of Node & NPM!

Background

I started getting this error after I started using NVM for a different project. When I went to run npm install on a project for my work, I got this error stating that the maximum call stack size had been exceeded.

This turned out to be caused by me using Node 12 and its accompanying NPM version while I should've been using Node 16.

Solution

Switch to a more recent version of Node & NPM;
nvm use <version> (for example, nvm use 16)

4

Happened in docker (node:15-buster) for me.

Remember to use WORKDIR /<folder> so that it doesn't conflict with original npm libraries installed.

The folder can be anything but system folders, so that includes using /.

3
  • I had the "call stack size exceeded" issue in docker until I moved the WORKDIR line to near the top of the Dockerfile. Apparently the location of that line matters.
    – zipzit
    Commented Nov 7, 2020 at 7:53
  • I had WORKDIR / at the top but it seems doing an npm i or npm ci from / blows things up. Commented Nov 13, 2020 at 1:24
  • @PaulRobello yep, the folder has to be separate from the original, lemme edit the answer to be clearer. Commented Nov 14, 2020 at 15:18
4

In case none of these answer work for you, it may be because the terminal you're using isn't the right one/ your node_modules is used by another part of your computer.

In my case I kept juggling between this error (maximum call stack size exceeded) and the access error event when I did a sudo npm i.

The fix was to close my IDE (which was WebStorm), run npm i in a basic terminal, and that was it.

1
  • Closing the editor fixed it for me. (Netbeans for me) Commented Apr 29, 2020 at 14:51
4

In my case I had a custom .npmrc file that included an auth token for authenticating with a private npm registry.

The token had expired, which helpfully returned code E401: Incorrect or missing password locally, but ERR! Maximum call stack size exceeded from the CI build.

3

I'm not a Windows user, so if you are, try to check Rene Knop comment.

For Unix/OSX users, I've removed the root .npmrc file ~/.npmrc.
Before you're going to try it, please, check if there is nothing necessary over there you can use this command to bring all content into your terminal: cat ~/.npmrc .

If you have got something like:

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

to save a copy:

cp ~/.npmrc ~/.npmrc_copy

Now, try to remove it (Works for bash users: Unix / Ubuntu / OSX ...):

rm -f ~/.npmrc

This worked for me.
Hope this will be helpful for others.

3

I also had the same problem. I had tried the previous solutions, but the solution for me was much simpler. I only had to remove the space in the directory and then run npm i again

Thanks to: https://github.com/nodejs/node-gyp/issues/809#issuecomment-155019383 for pointing this out.

3

In general, once a module has been installed, it's much more convenient to use npm ci instead of npm install. Please check out this SO answer for the advantages of the former with respect to the later in a production environment. So please just run

npm ci

All dependencies will be updated, and the problem will disappear. Or it will error in the case there's some grave de-synchronization between one and the other.

3
  • cipm can only install packages with an existing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1
    – Saad Bilal
    Commented Mar 29, 2023 at 5:14
  • @SaadBilal that's what I meant with "once a module has been installed"
    – jjmerelo
    Commented Mar 29, 2023 at 7:06
  • roger boss, you are right
    – Saad Bilal
    Commented Mar 30, 2023 at 4:36
2

You uninstall npm package and force clean the cache and close terminal and reinstall whichever package be.

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

Then restart terminal and check

Still not working upgrade both npm and node to the latest version

2

Today we encountered this error when running an npm prune even after running an npm cache clean --force.

Versions:

node 13.8.0 
npm 6.13.6

Deleting the package-lock.json worked for this case as well. Thank you all!

2

Most of the times, this issue occurs if you are using the system provided by the organization you work for and it's vpn restricts the use of this command. In this case, you may try to disconnect from organization vpn and then execute this command.

1

I tried everything to fix this issue on my Mac. I think the issue started when I had already downloaded npm from Node.js and then reinstalled it with Homebrew while following along with a Team Treehouse video.

Here's what I tried:

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

From How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)

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

Here's what worked:

In the end, the only thing that worked for me was to clone down the npm-reinstall repo from GitHub that completely removed everything related to npm on my Mac.

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

I then had to reinstall node and npm from Node.js.

0
1

I tried everything to fix this issue on my windows 7 machine like

Reinstalling and rebuilding npm

At last, I fixed this small configuration setting issue by wasting my entire day.

How I resolved this issue

Removing my project specific configurations in global .npmrc at location like drive:/Windows/Users/../.npmrc

1

I solved it 100% I had this problem with gulp version: 3.5.6.

You should clean the package-lock.js and then run npm install and It worked form

1

Our company dev environment uses Artifactory as the default registry for our NPM dependencies, and when running npm install it was defaulting to this, which did not work... so manually specifying the main npm registry via npm install --registry https://registry.npmjs.org fixed this issue for me...

1

I was facing the same error, I was trying to install jest into to one of the packages in a monorepo project.

If you are using Yarn + Learna to package a monorepo project, you will have to navigate to the package.json inside the target package and then run npm install or npm install <package name>.

1

Try this first!

Run npm install again

Crazily simple, but I don't know who else tried this so thought I should put it up here, despite all the existing answers. I suggest people try this first though, given it's the simplest solution and doesn't come with the risks others have noted when, say, deleting package-lock.json

Theory:

This is totally unproven as I'm just doing this to run a code screen (i.e. a totally new repo to me) and I guessed that some of the packages had been installed the first time npm install was run; it just ran out of resources later on.

I guessed that if I ran npm install again it would skip the install of the now-installed packages and complete, or at least get further. The behaviour I guessed at was what I saw but I didn't actually debug or test if this behaviour was for the reasons I guessed!

Clearly a lot of different things have worked for different people, but I thought I should add an answer to this already well-answered question on the basis it's the most trivial to do.

And if you're lucky it's going to run for long enough for you to grab a 🍵 or ☕ 😉

1
  • 1
    As strange as it sounds, running the npm install again worked.
    – Abhishek P
    Commented Jan 13, 2023 at 5:54
0

I had this problem and it was due to an upgrade of my git executable. I rolled back to Git-2.21.0.rc1.windows.1-64-bit and added this to my environment path and it fixed my issue.

0

The one thing that finally worked for me on Mac was upgrading from node 8.12 to 10.x using NVM.

I uninstalled all other versions of Node with NVM, then installed 10.x, then ran nvm alias default node, which tells NVM to always default to the latest available node version on a shell.

After that, my live reloading issue went away!

Not the answer you're looking for? Browse other questions tagged or ask your own question.