相似的问题建议删除
node_modules
目录的内容并再次运行npm install
或npm rebuild authenticate-pam --update-binary
。在我的情况下,所有这些都无法使用(Ubuntu 22.04运行Node.js v17.9.1)。启动应用程序时,我总是得到
Error: The module '.../node_modules/authenticate-pam/
build/Release/authenticate_pam.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 102. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1183:18)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/media/Daten1/Code/GitLab/scanapp/app/index.js:7:13)
at Module._compile (node:internal/modules/cjs/loader:1099:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
code: 'ERR_DLOPEN_FAILED'
}
I发现[1] node_module_version 102是我系统上安装的版本,而node_module_version 72是版本v12.22.12(也许该模块最初是针对构建的)。
我如何解决这个问题?还是还有其他方法可以使用PAM来验证我的节点应用程序的用户?[1]
https://nodejs.org/en/about/previous-releasesnode-gyp
,这是
authenticate-pam
的要求 - 不用牢记节点实际上来自snap-使用apt。
解决方案
sudo npm install -g node-gyp
现在从上面解决了问题,可以使用:可以使用:
authenticate-pam