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

在运行之前,我需要检查是否已安装“ 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()会引发错误,因此您必须对其进行处理。

以上是 Node.js-检查是否安装了模块而不实际需要它 的全部内容, 来源链接: utcz.com/qa/408659.html

回到顶部