NativeModule 是如何工作的?它们是否被缓存?
How does a NativeModule function and are they cached?
require('http')
console.log(require.cache.http) // undefined
我在 require.cache
中找不到 http
模块?我怎样才能检测到它是必需的?我发现 process.moduleLoadList
包含字符串 NativeModule http
但没有看到任何对缓存模块的引用 它在哪里?
NativeModule
表示未缓存:已编译。是这样定义的,
NativeModule: a minimal module system used to load the JavaScript core modules found in lib/**/*.js
and deps/**/*.js
. All core modules are compiled into the node binary via node_javascript.cc
generated by js2c.py
, so they can be loaded faster without the cost of I/O. This class makes the lib/internal/*
, deps/internal/*
modules and internalBinding()
available by default to core modules, and lets the core modules require itself via require('internal/bootstrap/loaders')
even when this file is not written in CommonJS style.
在 周围添加了重点,而没有 I/O“ 的成本,因此不需要缓存。
您可以在lib/internal/bootstrap/loaders.js
. You can find the mapping of native modules to source code here, but remember they're not read from disk. You can find js2c.py
中找到该系统
require('http')
console.log(require.cache.http) // undefined
我在 require.cache
中找不到 http
模块?我怎样才能检测到它是必需的?我发现 process.moduleLoadList
包含字符串 NativeModule http
但没有看到任何对缓存模块的引用 它在哪里?
NativeModule
表示未缓存:已编译。是这样定义的,
NativeModule: a minimal module system used to load the JavaScript core modules found in
lib/**/*.js
anddeps/**/*.js
. All core modules are compiled into the node binary vianode_javascript.cc
generated byjs2c.py
, so they can be loaded faster without the cost of I/O. This class makes thelib/internal/*
,deps/internal/*
modules andinternalBinding()
available by default to core modules, and lets the core modules require itself viarequire('internal/bootstrap/loaders')
even when this file is not written in CommonJS style.
在 周围添加了重点,而没有 I/O“ 的成本,因此不需要缓存。
您可以在lib/internal/bootstrap/loaders.js
. You can find the mapping of native modules to source code here, but remember they're not read from disk. You can find js2c.py