Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
How to remove node_modules after they have been added to a repo

How to remove node_modules

Create a .gitignore file

  1. Check for an existing .gitignore file in the project directory
ls -a
  1. If your project directory has a .gitingore file - skip to step 3. Otherwise, continue with:

Create a .gitignore file in the git repository

touch .gitignore

Remove the node_modules directory

  1. Open up the .gitignore and add the following line to the file
  1. Remove the node_modules folder from the git repository
git rm -r --cached node_modules

Commit All Changes

  1. Commit the git repository without the node_modules folder
git commit -m "Removed node_modules folder"
  1. Push the change to the remote repo
git push origin main
  1. Commit the .gitignore file
git add .gitignore
git commit -m "Updated the .gitignore file"
git push origin main
Copy link

Thank you so much!

Copy link

Thank you

Copy link

wgbcamp commented Jan 30, 2022

You're a wizard!

Copy link

Thank you so much! Saved me so much time.

Copy link

Thanks a lot.

Copy link

Superb. Worked for me in 1st time. Thanks a lot.

Copy link

whew. Thx!

Copy link

Wow thanks!!

Copy link

Thanks for the help!

Copy link

Thank you so much !

Copy link

Don't we have to edit **/node_modules back to node_modules inside .gitignore file?

Copy link

lmcneel commented May 30, 2023

Don't we have to edit **/node_modules back to node_modules inside .gitignore file?

@BekzodIsakov A leading **/ in a .gitignore file will allow files and folders to be ignored in the current or any descendant directory rather than just the current directory. This is useful in apps with separate packages for the client & server, for example.

If I have a directory structure like

  • .gitignore
  • client
    • node_modules
  • server
    • node_modules

The **/node_modules will still ignore the node_modules folder.

The **/ is not necessary if only the node_modules folder will be at the same level as the .gitignore file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment