繁体   English   中英

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

[英]How can I uninstall npm modules in Node.js?

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

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

  • 我们是否有任何命令或过程可以从根目录卸载模块(例如npm uninstall <module_name> )或者只是删除模块文件?

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

该命令只是npm uninstall <name>

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

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

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

以下是不同的选项:

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

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

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

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

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

也许您只需要以超级用户/管理员身份执行sudo npm uninstall <module_name>

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

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

    npm uninstall module1

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

    npm uninstall --save module1

注意:为了简化上述命令,您可以使用-S代替--save ,并且可以使用removermrununlink代替卸载

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

要卸载 Node.js 模块:

npm uninstall <module_name>

这将从文件夹node_modules 中删除模块,但不会从文件package.json 中删除。 因此,当我们再次执行 npm install 时,它将下载模块。

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

npm uninstall <module_name> --save

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

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

npm -g uninstall <module_name> --save

这将全局删除依赖项。

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

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

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

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

npm un packageNamenpm rm packageName

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

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

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

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

npm list -g --depth=0

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

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

npm uninstall module-name

正在工作,但是

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

没有工作。

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

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

它将卸载所有模块。

npm 5 的更新:

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

跑步

npm uninstall <package>

例如:

npm uninstall mongodb

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

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

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

npm install  @ngtools/webpack@latest

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

npm uninstall  @ngtools/webpack@latest

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

npm uninstall  @ngtools/webpack

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

npm uninstall moduleName

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

npm uninstall moduleName --save
OR
npm uninstall -S

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

npm uninstall moduleName -D
# Log in 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 (e.g. /usr/local/node)
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm

使用npm uninstall <packageName> --save卸载软件包并删除package.json的条目。

npm uninstall -g <packageName> --save程序包名称npm uninstall -g <packageName> --save将卸载该程序包(如果已全局添加)。

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

相当于:
npm uninstall <package-name> --save

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

最简单的解决方案是:

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 命令。 快递包裹示例:

npm uninstall express --save-dev

要卸载 Node.js 模块:

npm uninstall <module_name>

这将从文件夹node_modules 中删除模块,但不会从文件package.json 中删除。

使用以下命令从package.json使用中删除模块:

npm uninstall <module_name> --save

这也会从package.json 中删除它。

npm v6+ npm uninstall <package_name>删除它在文件夹node_modules和文件package.json 中

如果要使用 npm 卸载特定的 package,可以使用以下命令:

辛税:

npm uninstall <package-name>

例子:

npm uninstall moment

简单地,

npm un module_name

或者

npm uninstall module_name

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

卸载node module的命令:

npm uninstall <module_name>

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

但是,如果要引用全局范围或要更改package.json依赖项

这是一些不同的选择

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

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

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

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

如果您不需要在项目中使用包,则可以将其卸载并将其从项目的依赖项中删除。

对于卸载任何本地软件包,请使用以下命令:

npm uninstall <package_name>

对于卸载任何全局软件包,请使用以下命令:

npm uninstall -g <package_name>

要确认npm卸载已成功完成,请检查node_modules目录是否不再包含已卸载软件包的目录。

您可以通过以下方式卸载节点模块

  1. 卸载软件包

    npm uninstall <Package Name>

  2. 卸载软件包并将其从package.json中的依赖项中删除

    npm uninstall <Package Name> --save

  3. 卸载软件包并将其从package.json中的dev依赖项中删除

    npm uninstall <Package Name> --save-dev

  4. 卸载全局软件包。 全局软件包可以在系统的任何地方访问,而不仅限于特定项目

    npm uninstall -g <Package Name>

如果您使用的是 Windows,请以管理员身份运行 CMD 并键入:

npm -g uninstall <package name>

您可以手动删除 Node.js 模块。 对于 Windows,

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

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

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

npm uninstall <package_name>

别名可用于卸载 node_modules 包

un uninstall别名

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

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

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

npm uninstall <package_name>

卸载 express 的示例

npm uninstall express

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM