npm-uninstall

移除一个包

选择 CLI 版本

概要

npm uninstall [<@scope>/]<pkg>...
aliases: unlink, remove, rm, r, un

描述

这将卸载一个包,完全删除 npm 为其安装的所有内容。

它还会从您的 package.json 中的 dependenciesdevDependenciesoptionalDependenciespeerDependencies 对象中移除该包。

此外,如果您有 npm-shrinkwrap.jsonpackage-lock.json,npm 也会更新这些文件。

--no-save 将告诉 npm 不要从您的 package.jsonnpm-shrinkwrap.jsonpackage-lock.json 文件中移除该包。

--save-S 将告诉 npm 从您的 package.jsonnpm-shrinkwrap.jsonpackage-lock.json 文件中移除该包。这是默认值,但如果您例如在您的 npmrc 文件中设置了 save=false,则可能需要使用它。

在全局模式下(即,在命令末尾添加 -g--global),它会将当前包上下文作为全局包卸载。在这种情况下,--no-save 将被忽略。

范围是可选的,并遵循 scope 的通常规则。

示例

npm uninstall sax

sax 将不再出现在您的 package.jsonnpm-shrinkwrap.jsonpackage-lock.json 文件中。

npm uninstall lodash --no-save

lodash 不会从您的 package.jsonnpm-shrinkwrap.jsonpackage-lock.json 文件中移除。

配置

保存

  • 默认值:true,除非使用 npm update,在这种情况下默认值为 false
  • 类型:布尔值

将已安装的包保存到 package.json 文件中作为依赖项。

当与 npm rm 命令一起使用时,会从 package.json 中移除依赖项。

如果设置为 false,也会阻止写入 package-lock.json

全局

  • 默认值:false
  • 类型:布尔值

在“全局”模式下运行,因此包将安装到 prefix 文件夹中,而不是当前工作目录。有关行为差异的更多信息,请参见 文件夹

  • 包将安装到 {prefix}/lib/node_modules 文件夹中,而不是当前工作目录。
  • bin 文件将链接到 {prefix}/bin
  • 手册页将链接到 {prefix}/share/man

工作区

  • 默认值
  • 类型:字符串(可以设置多次)

启用在当前项目的配置工作区上下文中运行命令,同时通过仅运行此配置选项定义的工作区来过滤。

针对 workspace 配置的有效值是

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择该文件夹中的所有工作区)

当针对 npm init 命令设置时,这可以设置为尚未存在的工作区文件夹,以创建该文件夹并将其设置为项目中的一个全新工作区。

此值不会导出到子进程的环境中。

工作区

  • 默认值:null
  • 类型:null 或布尔值

设置为 true 以在**所有**配置的工作区上下文中运行命令。

显式将其设置为 false 将导致 install 等命令完全忽略工作区。当未显式设置时

  • node_modules 树进行操作的命令(install、update 等)将链接工作区到 node_modules 文件夹中。- 其他操作的命令(test、exec、publish 等)将在根项目上运行,除非 workspace 配置中指定了一个或多个工作区。

此值不会导出到子进程的环境中。

include-workspace-root

  • 默认值:false
  • 类型:布尔值

在启用工作区以进行命令时包含工作区根目录。

当为 false 时,通过 workspace 配置指定单个工作区,或通过 workspaces 标志指定所有工作区,将导致 npm 仅在指定的工作区上运行,而不是在根项目上运行。

此值不会导出到子进程的环境中。

  • 默认值:false
  • 类型:布尔值

当设置为 file: 协议依赖项时,将打包和安装为常规依赖项,而不是创建符号链接。此选项对工作区没有影响。

参见