1

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

3 に答える 3

3

required.resolve(...)あなたが探しているものかもしれません:

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

mainただし、これは次の設定に従います。

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

(更新: API のドキュメントはもう利用できないため、その使用はサポートされていない可能性があります。 ) 別のオプションとして、 を使用することもできますがnpmviewこれは登録済みパッケージに限定されます。

npm.load({}, function (err) {
    npm.commands.view(['mysql', 'readme'], true, function (err, readme) {
        console.log(readme);
    });
});
于 2013-02-28T19:31:53.260 に答える
2

モジュールの絶対パスを決定したい場合は、使用できますrequire.resolve('module')

http://nodejs.org/api/globals.html#globals_require_resolve

正規表現でフォルダパスを抽出できます

于 2013-02-28T19:22:44.520 に答える