如何在 node.js 依赖树中查找本机模块?

How to find native modules in a node.js dependency tree?

我有一个 node.js 应用程序,它有大约 10 个直接依赖项,总共有 50 个依赖项。

我现在想知道这些依赖项是否使用了本地代码(当然除了node.js平台本身),例如外部系统库(我在其他项目中看到过 libxml),拥有 C/C++ 库,需要安装编译器的 node-gyp 构建脚本等

是否有easy/quick方法来检查给定模块的整个依赖树以应对这种情况?

您可以简单地搜索 *.node 个文件,这是已编译插件使用的扩展名:

find node_modules -type f -name "*.node" 2>/dev/null | grep -v "obj\.target"

如果你想检查每个插件使用的共享库,你可以使用类似的东西:

find node_modules -type f -name "*.node" 2>/dev/null | grep -v "obj\.target" | xargs ldd

这里有一个 native-modules CLI 包。

$ npx native-modules