How to uninstall npm modules in node js?
众所周知,任何NPM模块都可以通过运行一个简单的命令来安装:
我已经安装了一些不再使用的模块,我只想把它们卸下来。关于这一点,我有几个问题:
我们是否有从根目录卸载模块的命令或过程(比如
npm uninstall )或者仅仅删除模块文件就可以了?如果我们保留未使用的模块,它将如何影响我们?
命令只是
nodejs文档https://npmjs.org/doc/包含了您需要知道的所有与npm有关的命令。
本地安装将位于应用程序的
但是,如果要删除全局包,引用它的任何应用程序都将崩溃。
以下是不同的选项:
如果它不适用于
也许你只需要以超级用户/管理员的身份使用
为了完整地回答这个问题,有两种方法:(例如,我们将已安装的模块称为模块1)
要在不更改package.json的情况下删除module1,请执行以下操作:
要使用更改package.json删除module1,并将其从package.json中的依赖项中删除,请执行以下操作:
注意:为了简化上述命令,可以使用-s而不是--save,也可以使用remove、rm、r、un、unlink而不是uninstall。
我只是默认地在home目录下安装触控笔,所以我只是使用
要卸载节点模块:
1 | npm uninstall <module_name> |
这将从node_模块中删除模块,但不会从package.json中删除。所以当我们再次安装NPM时,它将下载模块。
因此,要从package.json中删除模块,请使用:
1 | npm uninstall <module_name> --save |
这也会从package.json中删除依赖项。
如果要卸载任何全局模块,可以使用:
1 | npm -g uninstall <module_name> --save |
这将全局删除依赖项。
我发现这很难,即使它看起来很明显。
我最初尝试通过脚本中的简单for循环来遍历运行
1 | npm uninstall module-name |
在工作,但是
1 | npm uninstall /full/path/to/node_modules/module-name |
不工作。
对于Windows用户-如果要一次删除所有安装的节点模块:
- 开式动力壳
- 进入node_modules文件夹(cd node_modules)
- 运行此命令-"NPM uninstall(get childitem).name"
它将卸载所有模块。
要批量删除
这将删除文件系统中存在但未使用/声明的那些包
p.s>这在Windows上特别有用,因为您经常会遇到由于"超过路径长度限制"而无法删除某些文件的问题。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # login 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 |
使用
如果该包是在全球添加的,
当我试图对安装时使用的命令(正如我使用
例如,我安装了这样的软件包:
1 | npm install @ngtools/webpack@latest |
然后我想卸载它,所以我使用了相同的命令(包括@latest)
1 | npm uninstall @ngtools/webpack@latest |
所以上面的卸载不起作用,我必须删除
1 | npm uninstall @ngtools/webpack |
我希望这有帮助
有时,
在这种情况下,您可以手动删除包。
在Mac上,转到文件夹
要使用NPM卸载模块,可以使用:
1 | npm uninstall moduleName |
此外,如果要卸载并希望更改反映在package.json中,那么可以使用--save标志,如下所示:
1 2 3 | npm uninstall moduleName --save OR npm uninstall -S |
如果您想从devdependencies中卸载一个模块,并希望更改反映在package.json中,那么您可以使用-d标志,如下所示:
1 | npm uninstall moduleName -D |
您还可以用速记方式运行以下内容:
注意:在命令末尾添加
另外,如果您已经开始使用
相当于:
本遗嘱-从
卸载
1 | npm uninstall <module_name> |
这将从本地
但是,如果您引用了全局范围或希望更改
这里有一些不同的选择
带所有选项的完整文档,请参阅NPM卸载
使用
1 | npm uninstall <package_name> |
卸载Express的示例
1 | npm uninstall express |
如果您不需要在项目中使用包,可以将其卸载并从项目的依赖项中删除。
要卸载任何本地包,请使用以下命令:
1 | npm uninstall <package_name> |
要卸载任何全局包,请使用以下命令:
1 | npm uninstall -g <package_name> |
要确认NPM卸载已成功运行,请检查node_modules目录不再包含已卸载包的目录。
最简单的解决方案是:
1 | npm uninstall packageName --save-dev |
请参见项目中的上层包名称:
1 | npm list --depth=0 |
输出如下:
1 2 3 | [email protected] /home/jackkobec/projects/myAppName ├── packageName@packageVersion ├── [email protected] |
复制包名称并执行NPM卸载命令。快速包裹示例:
1 | npm uninstall express --save-dev |
更新NPM 5:
从NPM 5.0.0开始,默认情况下,作为依赖项添加/删除已安装/卸载的模块,因此不再需要--save选项。
运行
1 | npm uninstall <package> |
例如:
1 | npm uninstall mongodb |
它还将从node_modules文件夹和package.json文件中删除模块。
如果要卸载多个模块,只需运行