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

Man*_*mar 927 node.js npm

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

我已经安装了一些我不再使用的模块,我只是想让它们关闭.我有几个问题:

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

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

Men*_*ual 1387

命令很简单 npm uninstall <name>

nodejs文档https://npmjs.org/doc/具有npm需要知道的所有命令.

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

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

这里有不同的选择:

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

npm uninstall <name> --save也删除它dependenciespackage.json

npm uninstall <name> --save-dev也删除它devDependenciespackage.json

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

  • 一些提示:`npm uninstall <name>`从node_modules中删除模块,但不从package.json中删除.`npm uninstall <name> --save`也删除package.json中的依赖项.执行`npm -g uninstall <name> --save`以全局删除依赖项. (177认同)
  • 有没有办法卸载全局范围内的所有模块? (38认同)
  • 试试这个`npm -g ls | grep -v'npm @'| awk'/ @/{print $ 2}'| awk -F @'{print $ 1}'| xargs npm -g rm`卸载所有gobally安装的模块.如果你在Windows上,那么你需要安装Cygwin或git来运行它 (18认同)
  • 现在,npm uninstall &lt;name&gt;将从package.json和node_modules中删除该模块。 (7认同)
  • 正如评论和答案提到的,“--save”标志不再有用,因为它是没有该标志的默认行为;如果您想要旧的默认行为(保持 package.json 不变),请使用 `--no-save` 标志。https://docs.npmjs.com/cli/install (3认同)
  • 你知道在OSX上删除所有的命令吗? (2认同)
  • 截至 2019 年,节点 13(我相信还有 10+)通过 `npm uninstall &lt;name&gt;` 从 package.json 中删除包 (2认同)

fum*_*uma 79

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

也许你只需要作为超级用户/管理员来做sudo npm uninstall <module_name>.

  • 如果有'npm WARN uninstall`,`-g`会很有用. (4认同)

Ehs*_*san 43

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

  1. 要删除module1 而不更改package.json:

    npm uninstall module1

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

    npm uninstall --save module1

注意:为了简化上面提到的命令,可以使用-S代替--save,并且可以使用remove,rm,r,un,unlink代替uninstall


小智 24

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


Vis*_*hra 17

要卸载节点模块:

npm uninstall <module_name>  
Run Code Online (Sandbox Code Playgroud)

这将从node_modules中删除模块,但不从package.json中删除.因此,当我们再次安装npm时,它将下载该模块.

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

npm uninstall <module_name> --save  
Run Code Online (Sandbox Code Playgroud)

这也删除了package.json的依赖项.

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

npm -g uninstall <module_name> --save 
Run Code Online (Sandbox Code Playgroud)

这将全局删除依赖项.


khi*_*zer 9

别名可用于卸载node_modules包

un别名为uninstall

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


Nas*_*tro 8

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

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

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

npm list -g --depth=0
Run Code Online (Sandbox Code Playgroud)

  • 只是好奇,为什么“npm uninstall -g packageName”在某些情况下不起作用? (3认同)
  • 因为它是巨大的错误代码......很难适应每个操作系统版本。我认为这就是原因 (2认同)

Mwi*_*iza 8

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

npm un packageName 或者 npm rm packageName

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


小智 7

node_modules/批量删除软件包,您还可以从中删除它们package.json,进行保存,然后npm prune在终端上运行。

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

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


kay*_*eck 6

我发现这很难,即使看起来很明显.

我最初尝试npm uninstall module-name遍历在脚本中使用简单的for循环运行的node_modules目录.我发现如果你打电话给完整的路径它将无法工作,例如

npm uninstall module-name
Run Code Online (Sandbox Code Playgroud)

工作,但是

npm uninstall /full/path/to/node_modules/module-name 
Run Code Online (Sandbox Code Playgroud)

没有用.


cod*_*ror 6

npm 5 的更新:

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

npm uninstall <package>
Run Code Online (Sandbox Code Playgroud)

例如:

npm uninstall mongodb
Run Code Online (Sandbox Code Playgroud)

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

  • 真的; 如果您想要旧的默认行为(保持 package.json 不变),请使用 --no-save 标志 https://docs.npmjs.com/cli/install (2认同)

Sat*_*age 6

简单地,

npm un module_name
Run Code Online (Sandbox Code Playgroud)

或者

npm uninstall module_name
Run Code Online (Sandbox Code Playgroud)

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


Man*_*mar 5

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

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

它将卸载所有模块。