如何捕获`require()`异常来检查模块是否已安装?

时间:2017-08-26 19:40:14

标签: javascript node.js react-native

我已经尝试了几个小时来检查是否安装了节点包,以根据具体情况调整我的react-native库的行为。 我尝试了一个简单的尝试/捕获但是,我不知道为什么,“无法解决模块”异常绝对没有被捕获。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

如何捕获try { var Expo = require('expo'); } catch (e) { console.log('Module is not installed'); console.error(e); } “无法解析模块”异常,还是有其他方法可以检查模块是否已安装?

谢谢!

1 个答案:

答案 0 :(得分:0)

Require是同步的,因此错误处理必须遵循传统的Javascript错误处理模式,即使它看起来很奇怪:

try {
    var Expo = require('./123/1234/154.js') //obviously not going to work
    console.log("Installed successfully")
}
catch (e) {
    console.log('ERROR: ')
    console.log(e)
}

通常,您不应该在此方案中使用try catch,因为如果未正确安装/找到模块,您希望应用程序失败。