Nodejs获得`required`模块的目录
是否有可能确定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()) }
因此,我可以为所有这些模块提供方便的参考,并希望在开明的未来人们将包括旨在以这种方式访问的模块文档/备忘单
required.resolve(...)
可能是你要找的东西:
function requiredir(id) { return path.dirname(require.resolve(id)); }
虽然这将遵循main
设定:
> requiredir('grunt') .../node_modules/grunt/lib/
另一种select可能是使用npm
的view
,尽pipe这仅限于注册的包:
npm.load({}, function (err) { npm.commands.view(['mysql', 'readme'], true, function (err, readme) { console.log(readme); }); });
如果你想确定一个模块的绝对path,你可以使用require.resolve('module')
http://nodejs.org/api/globals.html#globals_require_resolve
您可以通过正则expression式提取文件夹path