在我的Node.js应用程序中,我使用pam身份验证,我使用的模块需要安装libpam-dev(或pam-devel),否则将无法编译。它生成的错误消息不是非常用户友好,许多人不会为阅读文档而烦恼。
我想在NPM中使用preinstall挂钩检查标头是否可用,如果没有,则显示友好错误,然后在尝试安装模块之前终止NPM。
我知道如何杀死NPM,而不是如何检查pam标头是否可用。解决方案应该是分布式的。
答案 0 :(得分:1)
我最终这样做了:
的package.json:
{
"scripts": {
"preinstall": "./bin/install_check.sh"
}
}
仓/ install_check.sh:
#!/bin/bash
if [ `echo '#include <security/pam_appl.h>' | cpp -H -o /dev/null 2>&1 | head -n1 | grep 'fatal error' | wc -l` == "1" ]; then
echo "nodeftpd: Please install the libpam-dev package";
exit 1;
fi
我无法弄清楚如何避免需要单独的脚本。