1345

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

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

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

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

4

24 回答 24

1987

命令很简单npm uninstall <name>

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

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

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

以下是不同的选项:

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

npm uninstall <name> --save也将其从dependenciesinpackage.json

npm uninstall <name> --save-dev也将其从devDependenciesinpackage.json

npm uninstall -g <name> --save也将其全局删除

于 2012-10-25T10:33:14.073 回答
92

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

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

于 2014-03-25T14:17:30.223 回答
58

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

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

    npm uninstall module1

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

    npm uninstall --save module1

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

于 2016-02-16T15:10:00.947 回答
31

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

于 2013-07-07T08:15:08.977 回答
25

卸载 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

这将全局删除依赖项。

于 2016-06-08T04:11:05.973 回答
17

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

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

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

于 2017-10-11T12:21:06.887 回答
9

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

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

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

npm list -g --depth=0
于 2018-10-28T13:13:41.403 回答
8

您还可以以简写形式运行以下命令:

npm un packageName或者npm rm packageName

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

于 2019-05-15T08:53:21.963 回答
7

npm 5 的更新:

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

npm uninstall <package>

例如:

npm uninstall mongodb

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

于 2019-03-26T08:19:12.677 回答
6

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

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

它将卸载所有模块。

于 2017-05-25T11:06:06.010 回答
6

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

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

npm uninstall module-name

正在工作,但是

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

没有工作。

于 2016-03-01T21:49:39.967 回答
4

别名可用于卸载 node_modules 包

un别名uninstall

  • 删除单个包
 - npm un <PACKAGE_NAME> 
  • 通过在包名称之间添加空格来删除多个包
- npm un <PACKAGE_NAME_1> <PACKAGE_NAME_2> 
  • 删除所有node_modules
 - rm -rf node_modules/
于 2021-05-16T09:42:50.870 回答
2

卸载 Node.js 模块:

npm uninstall <module_name>

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

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

npm uninstall <module_name> --save

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

于 2020-03-09T14:45:32.403 回答
2

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

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

npm install  @ngtools/webpack@latest

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

npm uninstall  @ngtools/webpack@latest

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

npm uninstall  @ngtools/webpack
于 2018-10-25T13:30:11.413 回答
2

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

npm uninstall moduleName

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

npm uninstall moduleName --save
OR
npm uninstall -S

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

npm uninstall moduleName -D
于 2019-04-11T12:28:02.990 回答
1

最简单的解决方案是:

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
于 2019-02-23T00:03:08.587 回答
1
# 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
于 2017-05-15T13:22:22.220 回答
1

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

于 2020-12-25T08:30:52.363 回答
1

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

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

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

于 2018-01-10T08:55:36.687 回答
0

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

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

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

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

于 2020-06-05T21:32:47.383 回答
0

利用

npm uninstall <package_name>

卸载 express 的示例

npm uninstall express
于 2019-01-30T12:10:27.757 回答
0
npm uninstall <package_name>
于 2021-04-08T06:02:52.567 回答
0

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

npm -g uninstall <package name>
于 2020-01-22T19:22:11.207 回答
0

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

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

于 2017-12-27T11:51:43.677 回答