When installing a node package using sudo npm link
in the package's directory, how can I uninstall the package once I'm done with development?
npm link
installs the package as a symbolic link in the system's global package location ('/usr/local/lib`). This allows you to test the package while still developing it, without having to install it over and over again.
Which npm command do I need to run to remove the link again?
The package can be uninstalled using the same uninstall or rm command that can be used for removing installed packages. The only thing to keep in mind is that the link needs to be uninstalled globally - the --global
flag needs to be provided.
In order to uninstall the globally linked foo
package, the following command can be used (using sudo
if necessary, depending on your setup and permissions)
sudo npm rm --global foo
This will uninstall the package.
To check whether a package is installed, the npm ls
command can be used:
npm ls --global foo
you can use unlink
to remove the symlink.
For Example:
cd ~/projects/node-redis
npm link
cd ~/projects/node-bloggy
npm link redis # links to your local redis
To reinstall from your package.json:
npm unlink redis
npm install
https://www.tachyonstemplates.com/npm-cheat-sheet/#unlinking-a-npm-package-from-an-application
unlink
the same as rm
for npm
? They share the same man page (with uninstall
).
npm i
remove all links anyway?
npm link pain:
-Module name gulp-task
-Project name project-x
You want to link gulp-task:
1: Go to the gulp-task directory then do npm link
this will symlink the project to your global modules
2: Go to your project project-x then do npm install
make sure to remove the current node_modules directory
Now you want to remove this madness and use the real gulp-task, we have two options:
Option 1: Unlink via npm:
1: Go to your project and do npm unlink gulp-task
this will remove the linked installed module
2: Go to the gulp-task directory and do npm unlink
to remove symlink. Notice we didn't use the name of the module
3: celebrate
What if this didn't work, verify by locating your global installed module. My are location ls -la /usr/local/lib/node_modules/
if you are using nvm it will be a different path
Option 2: Remove the symlink like a normal linux guru
1: locate your global dependencies cd /usr/local/lib/node_modules/
2: removing symlink is simply using the rm
command
rm gulp-task
make sure you don't have /
at the end
rm gulp-task/
is wrong 🔥🚨
rm gulp-task
✔️
npm-unlink
removed all packages in my project.
npm uninstall --global my-package
If you've done something like accidentally npm link
generator-webapp after you've changed it, you can fix it by cloning the right generator and linking that.
git clone https://github.com/yeoman/generator-webapp.git;
# for fixing generator-webapp, replace with your required repository
cd generator-webapp;
npm link;
"npm install" replaces all dependencies in your node_modules installed with "npm link" with versions from npmjs (specified in your package.json)
npm link
not npm link somepackage
. what you suggest would leave the package at the global node_modules.
You can undo the link
command with the unlink
command.
Create a link
In package
cd ./some-package
npm link
In comsumer
cd ./some-project
npm link some-package
Remove a link
Removing a link should be done in the reverse order - start from the consumers.
cd ./some-project
npm unlink some-package
In package
cd ./some-package
npm unlink
npm unlink some-package && npm install some-package
. Even then you'll still need to remove the global package with npm rm --global some-package
Success story sharing
npm ls --global --depth 0
to list all your top level dependenciessudo
. I created the missing directory with a dummypackage.json
with thename
andversion
field (name
should match the package name,version
can be anything). Inside that folder I rannpm link && npm unlink
and it worked.npm uninstall
from the local library folder will also work.sudo
isn't necessary if you're using something like nvm to install nodenpm list -g --depth=1
worked for me