如何删除所有 installed/built npm C++ 插件?

How do I delete all installed/built npm C++ addons?

我升级了我的节点版本。 npm rebuild 并删除我的 node_modules 目录似乎对我重建我的 C++ 插件不起作用。我仍然收到此错误:

Error: The module '[...]/node_modules/node-expat/build/Release/node_expat.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 46. This version of Node.js requires
NODE_MODULE_VERSION 51. Please try re-compiling or re-installing

我认为把所有的 C++ 插件(或者如果你可以定位的话,也许只是这个插件)都扔掉会很好,这可能会解决我的问题。有什么快速简便的方法吗?

万一 npm update 无济于事(这意味着,由于某种原因它不会像预期的那样重新编译模块),请转到模块目录并使用 make clean && makenpm rebuild / npm rb。这是解决此类版本冲突的常用方法 - 或者至少获取有关原因的更多详细信息。删除并重新安装有问题的模块也可能值得一试。没有 V8 nodeJS 可以做的比加载时要少(删除它可能只会完全削弱可能性;尽管有最初的问题,但不建议这样做)。

npmjs.com 处的文档明确指出:

This is useful when you install a new version of node, and must recompile all your C++ addons with the new binary.

...所以这是默认程序,以防更新。

Node 最近发布了 7.7 版本,很快就发现其中存在一个错误,导致所有原生模块无法编译。

他们很快发布了一个补丁 v7.7.1,应该可以解决这个问题。我猜你升级到 7.7,所以将你的安装更新到 7.7.1 应该可以解决这个问题。