2013-02-28 31 views
1

是否有可能確定required腳本來自哪個目錄?Nodejs獲取`required`模塊的目錄

我的最終目標是...

// return the directory where `mysql` module is found 
var mysqldir = requiredir('mysql') 
if(fs.existsSync(mysqldir+"/README.md")){ 
    console.log(fs.readFileSync(mysqldir+"/README.md").toString()) 
} 

這樣我就可以對所有這些模塊的實用參考,並希望人們在開明的將來,將包括打算要訪問模塊文檔/備忘這種方式

回答

4

required.resolve(...)解壓的文件夾路徑可能是你在找什麼:

function requiredir(id) { 
    return path.dirname(require.resolve(id)); 
} 

儘管,這將按照main設置:

> requiredir('grunt') 
.../node_modules/grunt/lib/ 

另一個選項可能是使用npmview,雖然這僅限於註冊包:

npm.load({}, function (err) { 
    npm.commands.view(['mysql', 'readme'], true, function (err, readme) { 
     console.log(readme); 
    }); 
}); 
+0

哇,我真的不是第一個想做這個的人..! – 2013-02-28 20:06:49