如果安装了模块,则只需要一个模块

时间:2013-11-08 05:08:53

标签: node.js npm

是否可以判断模块/包是否可供使用?

这样的事情:

var moduleexists = require "moduleexists"

if (moduleexists("strangemodule")) {
  var strangemodule = require("strangemodule");

  strangeModule.doCoolStuff();
} else {
  // Do something without strangemodule
}

1 个答案:

答案 0 :(得分:3)

您可以使用try..catch加载模块

try {                                                                                                                                                                                                                     
  var m = require('idontexist');                                                                                                                                                                                                                  
} catch(e) {                                                                                                                                                                                                                                      
 var m = {
    'doCoolStuff': function() { 
      .. 
    }
 };                                                                                                                                                                                                                             
} 

if (m.hasOwnProperty('doCoolStuff') && typeof m.doCoolStuff === 'function') {
   m.doCoolStuff();
}