2016-03-06 5 views
8

すべてのNode.jsコアモジュールの正確な最新リストを取得する方法を探しています。このような実行リストを提供するNPMモジュールはありますか?私の人生の年代記のどこかに書かれたこの質問に対する答えがありましたが、私はそれを覚えていないし、解決策がどれほど優れているかも覚えていません。ノードコアモジュールの正確なリスト

+3

。 'lib'ディレクトリ(https://github.com/nodejs/node/tree/master/lib)のソースファイル(' _'接頭辞付きのファイルは無視してください)にもあります。 –

+0

@johnathan私は、この情報をプログラム的に手に入れようとしています。恐ろしいウェブを擦ってはいけません。LOL –

+0

[Tonic](https://tonicdev.com/npm/builtin-modules)に住んでいます。 –

答えて

18

あなたは下線接頭辞のプロパティにアクセスしてもかまわない場合は、repl_builtinLibs配列をエクスポートします。

 
$ node -pe "require('repl')._builtinLibs" 
[ 'assert', 
    'buffer', 
    'child_process', 
    'cluster', 
    'crypto', 
    'dgram', 
    'dns', 
    'domain', 
    'events', 
    'fs', 
    'http', 
    'https', 
    'net', 
    'os', 
    'path', 
    'punycode', 
    'querystring', 
    'readline', 
    'stream', 
    'string_decoder', 
    'tls', 
    'tty', 
    'url', 
    'util', 
    'v8', 
    'vm', 
    'zlib' ] 

それがないという点で、このリストは、builtin-modulesモジュールによって提供されたリストとして、「完全」としてではありません文書化されていない類似のモジュールは含まれません。

+0

私はしませんでしたこれをテストしますが、サードパーティ製のライブラリの半静的なJSONファイルよりも若干優れていることがわかります –

+0

'repl'もリストにありますが、意図的に削除したと思います。完全なリストを表示するためにそのモジュールを使用しているので、そこにいてください!さて、それは私のPCに表示されます –

+0

@AnkurShah私はその時何も削除していません。当時のノードではおそらくエラーでした。 – mscdex

2

33モジュールはhttps://www.npmjs.com/package/builtin-modulesに従って組み込みモジュールにあります。

36 according to core structures 
28 repositories in Git 
112 packages 

このリストをコンパイルするのに時間がかかるでしょう。 node_coreの研究としてそれを行うことは良い選択肢になります。

3

J4F:github apiを使用して、JSON形式で直接ファイルのリストを取得できます。そして "あらすじ、" ノードの[APIドキュメント] "これらのドキュメントについて"(https://nodejs.org/dist/latest-v5.x/docs/api/)モジュールによって組織された後

var http = require('https') 
var path = require('path') 

var options = { 
    hostname: 'api.github.com', 
    path: '/repos/nodejs/node/contents/lib', 
    method: 'GET', 
    headers: { 'Content-Type': 'application/json', 
      'user-agent': 'nodejs/node' 
    } 
} 

var req = http.request(options, (res) => { 
    res.setEncoding('utf8') 
    var body = "" 
    res.on('data', (data) => { body += data }) 
    res.on('end',() => { 
    var list = [] 
    body = JSON.parse(body) 
    body.forEach((f) => { 
     if (f.type === 'file' && f.name[0]!=='_' && f.name[0]!=='.') { 
     list.push(path.basename(f.name,'.js')) 
     } 
    }) 
    console.log(list) 
    }) 
}) 
req.on('error', (e) => { throw (e) }) 
req.end() 
関連する問題