Is there a simple way to reinstall all packages that my app depends on (i.e. they are in my apps node_modules folder)?
10 Answers
The easiest way that I can see is delete node_modules
folder and execute npm install
.
-
48Agreed; assuming you've created a
package.json
file for your app.– JohnnyHKCommented Oct 12, 2012 at 20:24 -
17Beware that running
npm install
after removing thenode_modules
directory can result different versions of dependencies defined inpackage.json
being pulled down. If you require very specific versions of dependencies for your app, be careful and look intonpm shrinkwrap
or checking in yournode_modules
directory to source control. Commented Oct 12, 2012 at 21:18 -
16@smithclay I've defined the explicit version of the packages in my app's package.json, so that should be fine, right?– trusktrCommented Oct 12, 2012 at 21:35
-
1@vadim I was doing some testing on the behavior of
npm install
and it always reinstalls dependencies and upgrades packages to latest versions as permitted by package.json. So removingnode_modules
folders is not needed unless you think its corrupted. Is there a reason you think it should be removed? However, if the intent is to remove any packages that are extraneous then you could executenpm prune
instead– himanshuCommented Oct 18, 2012 at 19:27 -
3@himanshu you are right
npm install
upgrades all modules to package.json state. But the question is how to reinstall all packages. So they may be corrupted or may need to rebuild the binary parts after upgrade node.js verison. Commented Oct 18, 2012 at 23:12
The right way is to execute npm update
. It's a really powerful command, it updates the missing packages and also checks if a newer version of package already installed can be used.
Read Intro to NPM to understand what you can do with npm.
-
88But if there is no newer package then this won't do anything, right? I'm trying to force reinstall even if the package is already at latest version.– trusktrCommented Oct 12, 2012 at 21:01
-
3If there are no missing packages, then it will check if it can use latest versions of packages (including dependencies of the packages) listed in package.json . So, in essence it will upgrade packages if possible. But it will not reinstall. If you want to do it using commands you can execute
npm uninstall <package_name>
to uninstall specific package or executenpm uninstall
to uninstall all packages.– himanshuCommented Oct 12, 2012 at 21:09 -
1I tried doing just
npm uninstall
without specifying a package but that throws an error.– trusktrCommented Oct 12, 2012 at 21:42 -
1
-
1No, that's not the right way and it's not an answer to the question. The question is how to reinstall and not how to update to latest version. I need to downgrade.– KulaGGinCommented Sep 15, 2021 at 14:12
You can do this with one simple command:
npm ci
Here's an excerpt from npm ci
documentation:
In short, the main differences between using
npm install
andnpm ci
are:
- The project must have an existing
package-lock.json
ornpm-shrinkwrap.json
.- If dependencies in the package lock do not match those in
package.json
,npm ci
will exit with an error, instead of updating the package lock.npm ci
can only install entire projects at a time: individual dependencies cannot be added with this command.- If a
node_modules
is already present, it will be automatically removed beforenpm ci
begins its install.- It will never write to
package.json
or any of the package-locks: installs are essentially frozen.
-
1This answer adds some info regarding
npm ci
: stackoverflow.com/a/64014814/10788155– IctusCommented Aug 21, 2022 at 10:34 -
2ci does not work for global packages that are to be installed with -g option Commented Mar 17, 2023 at 5:58
-
@RajaNagendraKumar The question is about reinstalling app dependencies, not global packages. Commented Mar 22, 2023 at 16:24
-
In short: do
npm ci
if you want to reinstall your node_modules, but don't want to have your package-lock.json updated Commented Apr 9, 2023 at 21:18
Most of the time I use the following command to achieve a complete reinstall of all the node modules (be sure you are in the project folder).
rm -rf node_modules && npm install
You can also run npm cache clean
after removing the node_modules
folder to be sure there aren't any cached dependencies.
npm
updated the CLI command for install
and added the --force
flag.
npm install --force
The --force
(or -f
) argument will force npm
to fetch remote resources even if a local copy exists on disk.
See npm install
-
2My experience is that this doesn't work. The docs say that it does, but it simply doesn't.– HalcyonCommented Aug 18, 2021 at 8:57
As of npm cli v6.5.0 you can use the backronym:
npm clean-install
Sources:
https://github.com/npm/cli/releases/tag/v6.5.0 https://github.com/npm/cli/commit/fc1a8d185fc678cdf3784d9df9eef9094e0b2dec
You can use the reinstall module found in npm.
After installing it, you can use the following command:
reinstall
The only difference with manually removing node_modules
folder and making npm install
is that this command automatically clear npm's cache. So, you can get three steps in one command.
upd: npx reinstall
is a way to run this command without globally installing package (only for npm5+)
-
1@g00glen00b I've edited so that it now does include useful information without hyperlinks– Rob ♦Commented Jul 27, 2017 at 5:55
For Windows you can use
(if exist node_modules rmdir node_modules /q /s) && npm install
which removes node_modules
directory and performs npm install
then. Removal before install assures that all packages are reinstalled.
Follow this step to re install node modules and update them
works even if node_modules folder does not exist. now execute the following command synchronously. you can also use "npm update" but I think this'd preferred way
npm outdated // not necessary to run this command, but this will show outdated dependencies
npm install -g npm-check-updates // to install the "ncu" package
ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version
npm install: will install dependencies in your package.json file.
if you're okay with the version of your dependencies in your package.json file, no need to follow those steps just run
npm install
npm rebuild
might also help some issues with native dependenciesnpm update <packageName>
works great