众所周知,任何npm模块都可以通过运行一个简单的命令安装:npm install <module_name>。

我已经安装了一些我不再使用的模块,我只是想把它们弄掉。我对此有几个问题:

我们是否有任何命令或过程来从根目录卸载一个模块(比如npm uninstall <module_name>) 或者仅仅删除模块文件就可以了? 如果我们保留未使用的模块会对我们有什么影响?


当前回答

简单地说,

npm un module_name

OR

npm uninstall module_name

请确保在与软件包相同的目录中卸载它。Json和node_modules文件夹。

其他回答

如果它不能与npm uninstall <module_name>一起工作,请输入-g全局尝试它。

也许你只需要以超级用户/管理员的身份使用sudo npm uninstall <module_name>。

别名可以用来卸载node_modules包

uninstall的别名

删除单个包

 - npm un <PACKAGE_NAME> 

通过在包名称之间添加空格来删除多个包

- npm un <PACKAGE_NAME_1> <PACKAGE_NAME_2> 

移除所有node_modules包

 - rm -rf node_modules/

命令就是npm uninstall <name>

Node.js文档https://npmjs.org/doc/有所有你需要知道的npm命令。

本地安装将位于应用程序的node_modules/目录中。如果模块没有引用,这不会影响应用程序。

但是,如果您正在删除一个全局包,那么任何引用它的应用程序都会崩溃。

这里有不同的选择:

NPM卸载<name>从node_modules中删除模块,但不更新package.json

NPM卸载<name>——save也从package.json的依赖项中删除它

npm uninstall <name>——save-dev也从package.json中的devDependencies中删除它

NPM uninstall -g <name>——save也会全局删除它

我发现这一点很艰难,即使它看起来很明显。

我最初尝试在脚本中使用一个简单的for循环运行npm uninstall module-name遍历node_modules目录。我发现它不会工作,如果你调用完整的路径,例如,

npm uninstall module-name

在工作,但是

npm uninstall /full/path/to/node_modules/module-name 

没有工作。

卸载选项没有为我工作时,我试图使用相同的命令,我在安装(因为我正在安装@latest指令)

举个例子,我安装了一个这样的包:

npm install  @ngtools/webpack@latest

然后我想卸载它,所以我使用了相同的命令(包括@latest):

npm uninstall  @ngtools/webpack@latest

所以上面的卸载没有工作。我必须删除@latest,然后它工作得很好:

npm uninstall  @ngtools/webpack