如何在Node.js?中卸载npm模块

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

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

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

  • 如果我们保留未使用的模块会对我们有什么影响?

1496983 次浏览

命令简单地npm uninstall <name>

Node.js文档https://npmjs.org/doc/包含您需要了解的所有npm命令。

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

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

以下是不同的选择:

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

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

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

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

我只是在我的主目录下默认安装触笔,所以我只是使用npm uninstall stylus来分离它,或者你可以尝试npm rm <package_name>

如果它不适用于npm uninstall <module_name>,请通过键入-g全局尝试。

也许你只需要做一个超级用户/管理员sudo npm uninstall <module_name>

好吧,为了给出这个问题的完整答案,有两种方法(例如,我们将已安装的模块称为module1):

  1. 要删除module1没有更改package.json:

    npm uninstall module1

  2. 要删除module1更改package.json,并将其从package.json中的依赖项中删除:

    npm uninstall --save module1

注意:为了简化上述命令,您可以使用-s代替--保存,也可以使用删除rmr联合国解除关联代替卸载

我发现这很难,即使它是显而易见的。

我最初尝试在脚本中使用简单的for循环遍历运行npm uninstall module-namenode_modules目录。我发现如果您调用完整路径,它将无法工作,例如,

npm uninstall module-name

在工作,但是

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

没有工作。

要卸载Node.js模块:

npm uninstall <module_name>

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

因此,要从文件package.json中删除模块,请使用:

npm uninstall <module_name> --save

这也会从文件package.json中删除依赖项。

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

npm -g uninstall <module_name> --save

这将在全局删除依赖项。

# Log in as root (might be required depending on install)su -
# List all global packagesnpm ls -g --depth=0
# List all local (project) packagesnpm ls -p --depth=0
# Remove all global packagesnpm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
# Remove all local packgesnpm 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 (e.g. /usr/local/node)sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/nodesudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm

对于Windows用户-如果您想一次删除所有安装的Node.js模块:

  • 打开PowerShell窗口
  • 进入node_modules文件夹(cd node_modules
  • 运行此命令-“npm uninstall(Get-ChildItem)。名称”

它将卸载所有模块。

要批量删除文件夹node_modules中的包,您还可以从文件package.json中删除它们,保存它,然后在终端中运行npm prune

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

附注:这在Windows上特别有用,因为您可能经常遇到由于“超出路径长度限制”而无法删除某些文件的问题。

如果您想卸载多个模块,只需运行npm uninstall

然后转到文件package.json并从那里删除不需要的模块,然后只需运行命令npm install。它应该可以解决您的问题。

此外,如果您已经开始使用yarn代替npm
yarn remove <package-name>

等价于:
npm uninstall <package-name> --save

这将
-从package.json中删除包,以及
-从项目的node-modules文件夹中卸载它

当我尝试使用与安装时使用的命令相同的命令时,uninstall选项对我不起作用(因为我使用@latest指令安装)

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

npm install  @ngtools/webpack@latest

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

npm uninstall  @ngtools/webpack@latest

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

npm uninstall  @ngtools/webpack

有时npm uninstall -g packageName不起作用。

在这种情况下,您可以手动删除包。

在Mac上,转到文件夹/usr/local/lib/node_modules并删除包含您想要的包的文件夹。就是这样。使用此命令检查您的全局安装包列表:

npm list -g --depth=0

最简单的解决方案是:

npm uninstall packageName --save-dev

请参阅项目中的上层包名称:

npm list --depth=0

输出将是这样的:

app@0.1.0 /home/jackkobec/projects/myAppName├── packageName@packageVersion├── express@4.16.4

复制包名并执行npm uninstall命令。Express包的示例:

npm uninstall express --save-dev

更新npm 5:

npm5.0.0开始,默认情况下,已安装/卸载的模块作为依赖项添加/删除,因此不再需要--save选项。

运行

npm uninstall <package>

例如:

npm uninstall mongodb

它将从node_modules文件夹和package.json文件中删除模块。

要使用npm卸载模块,您可以使用:

npm uninstall moduleName

此外,如果您想卸载并希望更改反映在您的package.json中,那么您可以使用--Save标志,如下所示:

npm uninstall moduleName --saveORnpm uninstall -S

如果你想卸载一个模块,并希望更改反映在package.json那么你可以使用-D标志,如下所示:

npm uninstall moduleName -D

您还可以将以下内容作为速记运行:

npm un packageNamenpm rm packageName

注意:在命令末尾添加-g以卸载全局包。

如果您在Windows上,请以管理员身份运行CMD并键入:

npm -g uninstall <package name>

您可以手动删除Node.js模块。

  1. 转到存储库的node_modules目录。

  2. 删除您不想要的Node.js模块。

  3. 不要忘记删除package.json文件中对模块的引用!您的项目可能仍然使用引用运行,但您可能会收到错误。您也不想在package.json文件中留下未使用的引用,这可能会在以后引起混乱。

#0npm uninstall <package_name>中删除它在文件夹node_modules和文件package.json中。

别名可用于卸载node_modules包

ununinstall的别名

  • 删除单个包
 - npm un <PACKAGE_NAME>
  • 通过在包名之间添加空格来删除多个包
- npm un <PACKAGE_NAME_1> <PACKAGE_NAME_2>
  • 删除所有node_modules
 - rm -rf node_modules/

如果您想使用npm卸载特定的包,您可以使用以下命令:

Sintax:

npm uninstall <package-name>

示例:

npm uninstall moment

简单地说,

npm un module_name

npm uninstall module_name

确保将其卸载到与package.json和node_modules文件夹相同的目录中。