然而,这似乎在反向操作时不起作用。
如果我在应用程序根目录中执行 npm uninstall -g,它会抛出一个错误,要求我传递一个包名称。
这不应该卸载我安装的相同的包吗?
我做错了什么吗?
如果使用Bash,只需切换到包含您的package.json文件的文件夹并运行以下命令:
for package in `ls node_modules`; do npm uninstall $package; done;
在全局安装的软件包的情况下,如果您使用的是Windows系统,请切换到%appdata%/npm
文件夹并运行相同的命令。编辑:此命令无法在npm 3.3.6(Node 5.0)中正常工作。现在我正在使用以下Bash命令,并将其映射到我的.bashrc文件中的npm_uninstall_all:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
额外的好处?它要快得多!
npm uninstall
会处理这个问题,这就是为什么这个技巧很有用的原因。 - jedmaoforeach($package in ls node_modules){npm uninstall $package}
- JustMaiertr
未被识别。 - Overdrivr这个方法适用于我:
在你的项目中进入 node_modules 文件夹,然后执行命令提示符或 Git Bash:
npm uninstall *
移除了该项目的所有本地包。
node-gyp rebuildCXX(target) Release/obj.target/addon/src/heapdump.o 在../src/heapdump.cc中包含的文件: ../src/compat-inl.h:300:19: error: no member named 'GetCpuProfiler' in 'v8::Isolate' return isolate->GetCpuProfiler()->StartProfiling(title, record_samples);" - vikramvi
最近我发现了一个Node命令,可以卸载所有开发依赖项,如下:
npm prune --production
如我所提到的,此命令仅卸载开发依赖包。至少它帮助我避免手动执行。
对于 Windows 系统,请前往 node_modules 目录并在 PowerShell 中运行以下命令:
npm uninstall (Get-ChildItem).Name
对于Windows用户的提示:在 node_modules
父目录中运行此PowerShell命令:
ls .\node_modules | % {npm uninstall $_}
另一个简单的选项是删除node_modules和package-lock.json
rm -rf node_modules
rm -rf package-lock.json
这样之后,您可以尝试重新安装npm包。
// forcibly remove and reinstall all package dependencies
ren package.json package.json-bak
echo {} > package.json
npm prune
del package.json
ren package.json-bak package.json
npm i
这实际上创建了一个假的、空的 package.json,调用 npm prune
来删除 node_modules 中的所有内容,恢复原始的 package.json 并重新安装所有内容。
一些其他的解决方案可能更加优雅,但我认为这种方法更快、更全面。在其他线程中,我看到有人建议只删除 node_modules 目录,但至少对于 Windows,这会导致 npm 在之后产生问题,因为 bin 目录丢失。也许在 Linux 上它能被正确地恢复,但在 Windows 上不行。
实际上没有直接删除的选项。如果你想从package.json
中卸载软件包,只需在与package.json
相同的目录下执行npm ls
命令,并使用npm uninstall <name>
或npm rm <name>
来删除所需的软件包。
首先,从package.json
的dependencies
和devDependencies
中删除所有包。
其次,运行npm install
即可。
就这么简单。
npm i
"npm i
"不仅会安装缺少的依赖项,还会更新node_modules以匹配package.json。