2

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

像这样的东西:

var moduleexists = require "moduleexists"

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

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

1 回答 1

3

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

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

if (m.hasOwnProperty('doCoolStuff') && typeof m.doCoolStuff === 'function') {
   m.doCoolStuff();
}                                                                                                                                                                                                                                                                                                                                                                                                                                 
于 2013-11-08T05:20:49.983 回答