Как я могу собрать node.js без каких-либо внутренних модулей?

Я хочу построить определенный nodejs как статическую библиотеку без какого-либо внутреннего модуля, такого как child_processdns и т.п.

Есть ли настраиваемый способ сделать это?

1 ответ

Решение

Удалите ненужные модули из node.gyp, удалите файлы.js из lib папку, удалите их из builtinLibs массив в lib/internal/module.js затем построить его.

{
  'variables': {
    'v8_use_snapshot%': 'false',
    'v8_trace_maps%': 0,
    'node_use_dtrace%': 'false',
    'node_use_lttng%': 'false',
    'node_use_etw%': 'false',
    'node_use_perfctr%': 'false',
    'node_no_browser_globals%': 'false',
    'node_use_v8_platform%': 'true',
    'node_use_bundled_v8%': 'true',
    'node_shared%': 'false',
    'force_dynamic_crt%': 0,
    'node_module_version%': '',
    'node_shared_zlib%': 'false',
    'node_shared_http_parser%': 'false',
    'node_shared_cares%': 'false',
    'node_shared_libuv%': 'false',
    'node_use_openssl%': 'true',
    'node_shared_openssl%': 'false',
    'node_v8_options%': '',
    'node_enable_v8_vtunejit%': 'false',
    'node_core_target_name%': 'node',
    'library_files': [
      'lib/internal/bootstrap_node.js',
      'lib/async_hooks.js',
      'lib/assert.js',
      'lib/buffer.js',
      'lib/child_process.js', //Remove this line
      'lib/console.js',
      'lib/constants.js',
      'lib/crypto.js',
      'lib/cluster.js',
      'lib/dgram.js',
      'lib/dns.js', //Remove this line too
[...]

Помните, что эти модули используются в тестах и ​​тестах производительности, например, при child_proccess, в lib/internal/v8_prof_polyfill.js а также lib/internal/cluster/master.js

Другие вопросы по тегам