node_main.cc(入口)
1、node.cc
启动v8,创建process(实现JSNI),加载core内核,启动uv
2、node.js(node内核)
(1)加载evals模块(C++) process.binding('evals')
(2)预加载内置的JS模块 process.binding('natives')
(3)搭建应用核心
startup.processFatal();
startup.globalVariables();
startup.globalTimeouts();
startup.globalConsole();
startup.processAssert();
startup.processConfig();
startup.processNextTick();
startup.processStdio();
startup.processKillAndExit();
startup.processSignalHandlers();
startup.processChannel();
startup.resolveArgv0();
(4)入口解析
(1)_third_party_main模块(内置JS)
(2)debug参数:_debugger模块
(3)-e/--eval参数:evalScript
(4)mainModule:主模块
(5)命令行:repl模块
(6)监听stdin
本文详细介绍了Node.js的启动过程,包括启动V8引擎、创建process对象、加载核心模块及初始化应用环境等内容,并阐述了如何根据不同的启动参数加载内置模块或执行特定任务。
781

被折叠的 条评论
为什么被折叠?



