当前位置: 首页 > 面试题库 >

Node.js-检查是否安装了模块而不实际需要它

谭景明
2023-03-14
问题内容

在运行之前,我需要检查是否已安装“ mocha”。我想出了以下代码:

try {
    var mocha = require("mocha");
} catch(e) {
    console.error(e.message);
    console.error("Mocha is probably not found. Try running `npm install mocha`.");
    process.exit(e.code);
}

我不喜欢这个例外。有没有更好的办法?


问题答案:

您应该使用require.resolve()而不是require()require如果找到将加载库,但不会加载require.resolve(),它将返回模块的文件名。

请参阅文档以了解require.resolve

try {
    console.log(require.resolve("mocha"));
} catch(e) {
    console.error("Mocha is not found");
    process.exit(e.code);
}

如果未找到模块,则require.resolve()会引发错误,因此您必须对其进行处理。



 类似资料:
  • 问题内容: 我正在寻找一种找出模块是否可用的方法。 例如,我想以编程方式检查该模块是否可用。 另外,如果没有找到模块,它也不应停止程序,我想自己处理。 PS:我添加了这个问题,因为Google并没有帮助。 问题答案: 如果您只想检查模块是否可用(如果不可用则不加载),还有一种更聪明的方法:

  • 问题内容: 检查软件包是否在Python脚本中安装的好方法是什么?我知道从解释器很容易,但是我需要在脚本中完成。 我想我可以检查安装过程中在系统上是否创建了目录,但是我觉得有更好的方法。我试图确保已安装Skype4Py软件包,如果没有,我将安装它。 我完成支票的想法 检查典型安装路径中的目录 尝试导入软件包,如果抛出异常,则安装软件包 问题答案: 如果您的意思是python脚本,请执行以下操作:

  • 问题内容: 最近,我碰上了这篇文章如何写在Node.js的一个单 我知道以下 状态的文档: 第一次加载模块后将对其进行缓存。多次调用可能不会导致模块代码多次执行。 因此,似乎每个需要的模块都可以轻松地用作单例,而无需单例样板代码。 题: 上面的文章是否提供了有关创建单例的解决方案? 问题答案: 这基本上与nodejs缓存有关。干净利落。 https://nodejs.org/api/modules

  • 问题内容: 我正在构建在Node.js中使用Java的应用程序。我做了一个检查Java版本的函数: 但是对于未安装Java的系统,Node.js抛出ENOENT错误,因为模块“ child_process”无法生成该进程。如何验证是否从Node.js安装了Java? 我感谢您的帮助! 问题答案: 那这个呢?

  • 问题内容: 如何检查Mac上是否安装了Java SDK? 为此有命令行吗? 问题答案: 在终端会做

  • 在我们的应用程序中使用PHP检查包(任何版本)是否已安装/存在的最干净的方法是什么? 基本上,在我们的应用程序中,我们希望调用具有以下签名的函数: bool函数hasComposerPackage(字符串$PackageName) 这个函数必须包含什么,这样我们才能做这样的事情: 理想情况下,这需要在没有任何命令行exec调用的情况下发生,并且在这个过程中不应该自动加载任何不必要的文件。