Node.js 如何将脚本加载到内存中?

Ben*_*Ben 4 javascript node.js

在浏览器中,将按照定义的顺序解析 DOM 并加载和解析脚本。

在 Node.js 中,脚本是如何加载到内存中的?

require初始化时是否遍历了每个文件中的语句定义的整个脚本图,以及生成的对象和值填充堆栈和堆以准备开始执行?

Ben*_*aum 6

同步进行。每当它遇到一个脚本时,require它都会同步加载脚本并运行它 - 然后,当发现其他脚本时,它会同步加载它们。

IIRC在0.2天的时候就有了一个异步版本,但是已经很久没有出现了。至于它实际上做了什么:

基本上,它所做的就是一个fs.readFileSync.

更具体地说,调用require首先_load检查缓存,然后创建模块调用相关扩展。由于允许多个扩展(例如.json),它以不同的方式加载每个扩展,在.js常见情况下,它只是调用fs.readFileSync然后编译它(这涉及包装它、注入导出和运行它)。

  • @BenAston是的,但是描述性太强了,只要说它被加载、解析、缓存和执行就足够了。 (2认同)