Sea*_*ean 7 javascript node.js npm
我可以运行它来列出我通过以下方式全局链接的所有 npm 模块npm link ...:
npm ls -g --depth=0 --link=true
那么我该如何删除/取消链接所有这些链接的模块呢?我有超过 10 个依赖项,所以我正在寻找比运行npm unlink [module]10 次更令人满意的东西。
所以 npm link 有两部分:源包和目标包。在源包上,您运行npm link并在全局 node_modules 文件夹中创建符号链接,如下所述:
$ {prefix}/lib/node_modules/<package>
Run Code Online (Sandbox Code Playgroud)
可以
{prefix}通过运行找到npm prefix -g- 我们将在下面使用它。
全局node_modules包含所有全局安装的模块,因此我们不能只清空该文件夹。相反,我们需要找到所有符号链接并删除它们。这是执行此操作的命令(应该适用于 mac/linux):
find $(npm prefix -g)/lib/node_modules -maxdepth 2 -type l -delete
Run Code Online (Sandbox Code Playgroud)
以下是正在发生的事情的简要概述:
-type l仅过滤符号链接-maxdepth 2仅针对与 链接的包是必要的npm link。如果删除该过滤器,您将看到有一堆我们不想触及的全局 bin 链接和其他符号链接。我们需要深度2覆盖@scoped/*和未覆盖的包。-delete是对找到的文件执行的“操作”。您可以删除它,它将回退到默认-print命令,该命令将列出所有找到的文件而不删除它们。在目标包上,您可以在此处运行npm link <package>,创建一个指向上面创建的全局符号链接的本地符号链接。不幸的是,如果不搜索整个目录树,就没有简单的方法可以找到所有这些“本地”符号链接。最简单的方法是在任何目标包中运行npm unlink <package>,但这需要手动操作。您可以自由地使用该find命令,看看您可以召集什么。我将从这里开始,它将在当前用户的主目录和 node_modules 文件夹中找到所有符号链接:
find ~/ -type l -regex .*node_modules.*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7601 次 |
| 最近记录: |