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

标签 javascript node.js react-native

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

try {
  var Expo = require('expo');
} catch (e) {
  console.log('Module is not installed');
  console.error(e);
}

如何捕获 require()“无法解析模块”异常,或者是否有其他方法来检查模块是否已安装?

谢谢!

最佳答案

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,因为如果模块未正确安装/找到,您希望应用程序失败。

关于javascript - 如何捕获 `require()`异常来检查模块是否安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45899050/

相关文章:

javascript - 将 console.log() 内容通过管道传送到 Node.js 中的 .txt 文件

javascript - 使用 autocomplete.js 并从多个 Algolia 源读取的 Angularjs 应用程序不起作用

javascript - 存储和更新存储的对象

javascript - 如何解决 npm 对等依赖问题?

javascript - React Native 中全局对象的模式

react-native - 尽管存在 Podfile,AppCenter 似乎并未运行 pod install

javascript - 通过 Webpack 动态加载/导入拆分的 vendor block /包

javascript - MongoJS Node findOne 错误地没有返回结果

node.js - Mongoose 嵌套 group by 对嵌套字段进行排序

node.js - 如何直接在 Angular 4/expressJS 服务器中运行项目(无需 webpack)