node.js - Node.js: require.resolve判断package是否存在

https://coldfunction.com/p/5q

可以直接用require,如果抛出异常,就可能是不存在:

try {
    require('myPackage');
    // 存在
} catch (ex) {
    // 不存在
}

不过上面的代码有两个问题:

  1. 有可能是package存在,但是require执行package后抛出异常,所以这个判断不是100%准确。
  2. 一旦package存在,require会造成整个package的执行。

所以可以尝试另一种更准确的方法:

try {
    require.resolve("mocha");
    // 存在
} catch(e) {
    // 不存在
}

require.resolve不会加载package,即便是package存在。

posted on 2021-02-09 17:29  bowen_tong  阅读(449)  评论(0)    收藏  举报