node.js - Node.js: require.resolve判断package是否存在
https://coldfunction.com/p/5q
可以直接用require
,如果抛出异常,就可能是不存在:
try {
require('myPackage');
// 存在
} catch (ex) {
// 不存在
}
不过上面的代码有两个问题:
- 有可能是package存在,但是
require
执行package后抛出异常,所以这个判断不是100%准确。 - 一旦package存在,
require
会造成整个package的执行。
所以可以尝试另一种更准确的方法:
try {
require.resolve("mocha");
// 存在
} catch(e) {
// 不存在
}
require.resolve
不会加载package,即便是package存在。