Javascript 在哪里可以获得所有本机节点模块的阵列?

Javascript 在哪里可以获得所有本机节点模块的阵列?,javascript,node.js,Javascript,Node.js,我正在寻找一种方法来获取所有可用节点模块的列表。动态获取该列表会很有趣,因为不同版本或未来版本可能会添加或弃用模块。以编程方式获取列表(仅适用于节点8及更高版本) 最新名单: const builtins = [ '_http_agent', '_http_client', '_http_common', '_http_incoming', '_http_outgoing', '_http_server', '_stream_duplex',

我正在寻找一种方法来获取所有可用节点模块的列表。动态获取该列表会很有趣,因为不同版本或未来版本可能会添加或弃用模块。

以编程方式获取列表(仅适用于节点8及更高版本)

最新名单:

const builtins = [
  '_http_agent',       '_http_client',        '_http_common',
  '_http_incoming',    '_http_outgoing',      '_http_server',
  '_stream_duplex',    '_stream_passthrough', '_stream_readable',
  '_stream_transform', '_stream_wrap',        '_stream_writable',
  '_tls_common',       '_tls_wrap',           'assert',
  'async_hooks',       'buffer',              'child_process',
  'cluster',           'console',             'constants',
  'crypto',            'dgram',               'dns',
  'domain',            'events',              'fs',
  'fs/promises',       'http',                'http2',
  'https',             'inspector',           'module',
  'net',               'os',                  'path',
  'perf_hooks',        'process',             'punycode',
  'querystring',       'readline',            'repl',
  'stream',            'string_decoder',      'sys',
  'timers',            'tls',                 'trace_events',
  'tty',               'url',                 'util',
  'v8',                'vm',                  'worker_threads',
  'zlib'
]
下面是一个旧的列表:

const builtins = [
  'assert',         'buffer',   'child_process',
  'cluster',        'console',  'constants',
  'crypto',         'dgram',    'dns',
  'domain',         'events',   'fs',
  'http',           'https',    'module',
  'net',            'os',       'path',
  'process',        'punycode', 'querystring',
  'readline',       'repl',     'stream',
  'string_decoder', 'sys',      'timers',
  'tls',            'tty',      'url',
  'util',           'vm',       'zlib'
];
以下是一个尝试跨所有版本的节点工作的函数:

export const builtins = () => {
  try {
    // eslint-disable-next-line @typescript-eslint/no-var-requires
    const result = require('module');
    // eslint-disable-next-line node/no-unsupported-features/node-builtins
    return result.builtinModules;
  } catch (e) {
    // prettier-ignore
    return [
      'assert',         'buffer',   'child_process',
      'cluster',        'console',  'constants',
      'crypto',         'dgram',    'dns',
      'domain',         'events',   'fs',
      'http',           'https',    'module',
      'net',            'os',       'path',
      'process',        'punycode', 'querystring',
      'readline',       'repl',     'stream',
      'string_decoder', 'sys',      'timers',
      'tls',            'tty',      'url',
      'util',           'vm',       'zlib'
    ];
  }
};


以编程方式获取列表(仅适用于节点8及更高版本)

最新名单:

const builtins = [
  '_http_agent',       '_http_client',        '_http_common',
  '_http_incoming',    '_http_outgoing',      '_http_server',
  '_stream_duplex',    '_stream_passthrough', '_stream_readable',
  '_stream_transform', '_stream_wrap',        '_stream_writable',
  '_tls_common',       '_tls_wrap',           'assert',
  'async_hooks',       'buffer',              'child_process',
  'cluster',           'console',             'constants',
  'crypto',            'dgram',               'dns',
  'domain',            'events',              'fs',
  'fs/promises',       'http',                'http2',
  'https',             'inspector',           'module',
  'net',               'os',                  'path',
  'perf_hooks',        'process',             'punycode',
  'querystring',       'readline',            'repl',
  'stream',            'string_decoder',      'sys',
  'timers',            'tls',                 'trace_events',
  'tty',               'url',                 'util',
  'v8',                'vm',                  'worker_threads',
  'zlib'
]
下面是一个旧的列表:

const builtins = [
  'assert',         'buffer',   'child_process',
  'cluster',        'console',  'constants',
  'crypto',         'dgram',    'dns',
  'domain',         'events',   'fs',
  'http',           'https',    'module',
  'net',            'os',       'path',
  'process',        'punycode', 'querystring',
  'readline',       'repl',     'stream',
  'string_decoder', 'sys',      'timers',
  'tls',            'tty',      'url',
  'util',           'vm',       'zlib'
];
以下是一个尝试跨所有版本的节点工作的函数:

export const builtins = () => {
  try {
    // eslint-disable-next-line @typescript-eslint/no-var-requires
    const result = require('module');
    // eslint-disable-next-line node/no-unsupported-features/node-builtins
    return result.builtinModules;
  } catch (e) {
    // prettier-ignore
    return [
      'assert',         'buffer',   'child_process',
      'cluster',        'console',  'constants',
      'crypto',         'dgram',    'dns',
      'domain',         'events',   'fs',
      'http',           'https',    'module',
      'net',            'os',       'path',
      'process',        'punycode', 'querystring',
      'readline',       'repl',     'stream',
      'string_decoder', 'sys',      'timers',
      'tls',            'tty',      'url',
      'util',           'vm',       'zlib'
    ];
  }
};


您可以使用此代码获取所有全局安装模块的列表:

function exec(callback) {
  require('child_process').exec('npm ls -g --depth=0 --json', function(err, data, stderr) {
    if (err) return cb(err)
    callback(data);
  });
}

function get_modules(callback) {
    var res = [];
    exec(function(d) {
        d = JSON.parse(d);
        var m = d.dependencies;     
        for(key in m) res.push(key);
        callback(res);
    });
}

get_modules(console.log);
如果需要内置模块,请使用

console.log(require("module").builtinModules)

参考此项。

您可以使用此代码获取所有全局安装模块的列表:

function exec(callback) {
  require('child_process').exec('npm ls -g --depth=0 --json', function(err, data, stderr) {
    if (err) return cb(err)
    callback(data);
  });
}

function get_modules(callback) {
    var res = [];
    exec(function(d) {
        d = JSON.parse(d);
        var m = d.dependencies;     
        for(key in m) res.push(key);
        callback(res);
    });
}

get_modules(console.log);
如果需要内置模块,请使用

console.log(require("module").builtinModules)

请参阅此项。

您可以获得如下本机模块列表:

const repl = require('repl') 
console.log(repl._builtinLibs)

通过这种方式,您可以在特定版本的Nodejs中获得可用的本机模块。

您可以获得如下本机模块列表:

const repl = require('repl') 
console.log(repl._builtinLibs)

通过这种方式,您可以在特定版本的Nodejs中获得本机模块。

如果您使用的是Node version>8.11.3,建议使用
模块
对象的
内置模块
属性,如下所示:

const builtins = require('module').builtinModules;

进一步详细信息:

如果您使用的是节点版本>8.11.3,建议使用
模块
对象的
内置模块
属性,如下所示:

const builtins = require('module').builtinModules;

更多详细信息:

cd/usr/share/doc/nodejs/api | find./-name“*.md”cd/usr/share/doc/nodejs/api | find./-name“*.md”@ruakh不,我认为将所有这些内容都列在这里是很有用的,也许最好在问题或答案中添加这个列表,与您引用的链接中的方式相同。@ruakh不,我认为将所有这些元素的数组与此处的列表相同是很有用的,也许最好将此列表添加到问题或答案中,与您引用的链接中的方式相同。这缺少
模块
。感谢您指出@ThomasReggi,但我认为它是语义的。刚刚找到这个。这是缺少的
模块
。感谢您指出@ThomasReggi,但我认为它是语义的。刚找到这个。