如何卸载节点js中的npm模块?

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

我已经安装了一些我不再使用的模块,我只是想把它们closures。 我有几个关于这个问题的问题:

  • 我们是否有任何命令或进程从根目录卸载模块(类似于npm uninstall <module_name> )或者只是删除模块文件吗?

  • 如果我们保留未使用的模块,它会如何影响我们?

该命令只是npm uninstall <name>

nodejs文档https://npmjs.org/doc/拥有你需要用npm知道的所有命令。;

本地安装将位于应用程序的node_modules/目录中。 这不会影响应用程序,如果一个模块留在那里没有任何引用。

但是,如果要删除全局程序包,则引用它的任何应用程序都将崩溃。

这里有不同的select:

npm uninstall <name>node_modules删除模块,但不是package.json

npm uninstall <name> --save也从package.json dependencies中删除

npm uninstall <name> --save-dev也从package.json devDependencies中移除

npm -g uninstall <name> --save也删除全球

如果它不适用于npm uninstall <module_name>则可以通过键入-g来全局尝试。

也许你只需要使用sudo npm uninstall <module_name>作为superuser / administrator来完成。

那么给这个问题一个完整的答案,有两种方法 :(例如,我们把安装的模块称为module1)

  1. 更改package.json的情况下删除module1:

    npm uninstall module1

  2. 通过更改package.json来移除module1,并将其从package.json中的依赖项中移除:

    npm uninstall --save module1

注意:为了简化上面提到的命令,可以使用-S而不是–save ,并且可以使用removermrununlink而不是卸载

我只是在我的家目录安装手写笔 ,所以我只是用npm uninstall stylus分离它,或者你可以尝试npm rm <package_name>出来。

卸载节点模块:

 npm uninstall <module_name> 

这将从node_modules中删除模块,但不会从package.json中删除。 所以当我们再次安装npm时,它会下载模块。

所以要从package.json中删除模块使用:

 npm uninstall <module_name> --save 

这也从package.json中删除依赖。

如果你想卸载任何全局模块,你可以使用:

 npm -g uninstall <module_name> --save 

这将全局删除依赖关系。

即使这看起来很明显,我也是很难find的。

我最初试图循环运行npm uninstall module-name的node_modules目录,并在脚本中使用简单的for循环。 我发现如果你调用完整的path,它将不起作用,例如

 npm uninstall module-name 

正在工作,但是

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

不工作。

对于Windows用户 – 如果要删除所有一次安装的节点模块:

  • 打开PowerShell
  • 进入node_modules文件夹(cd node_modules)
  • 运行这个命令 – “npm uninstall(Get-ChildItem).Name”

它会卸载所有的模块。

 # login as root (might be required depending on install) su - # list all global packages npm ls -g --depth=0 # list all local (project) packages npm ls -p --depth=0 # remove all global packages npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm # remove all local packges npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm # NOTE (optional): to use node with sudo you can add the bins to /usr/bin # NOTE $PATHTONODEINSTALL is where node is installed (eg /usr/local/node) sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm 

卸载node module的命令:

 npm uninstall <module_name> 

这将从本地node-module目录中卸载模块,这不会影响应用程序。

但是如果你引用了全局作用域或者想改变package.json依赖关系

这里有一些不同的select

npm uninstall <module_name> --savepackage.json dependencies中删除模块。

npm uninstall <module_name> --save-devpackage.json devDependencies中移除模块。

npm uninstall <module_name> -g --save全局删除模块。

完整的文档与所有选项,请参阅npm卸载

要删除node_modules/中的包,你也可以将它们从package.json删除,保存,然后在terminal上运行npm prune

这将删除文件系统中存在的那些包,但不会使用/声明package.json

PS>这在Windows上特别有用,因为由于“超出path长度限制”而无法删除某些文件,所以经常会遇到问题。

答案是伟大的,但没有一个我正在寻找,所以我把另一个答案在这里谁正在寻找简短版本的uninstall命令。

npm uninstall <package-name> [-S|--save|-D|--save-dev] 几乎所有的答案都提到了这个版本

但另一种select是:

  • npm r <package-name> [-S|--save|-D|--save-dev]
  • npm rm <package-name> [-S|--save|-D|--save-dev]
  • npm remove <package-name> [-S|--save|-D|--save-dev]

有关更多选项,请前往npm-uninstall(删除软件包)

npm卸载 – 保存也从package.json中删除条目npm uninstall -g –save如果Package是全局安装的

npm卸载模块的名称即例如npm uninstall express,npm uninstall express –save remove在package.json中的依赖关系