node/lib 中的 *.js 文件是否在编译节点可执行文件期间使用?

are *.js files in node/lib used during compilation of the node executable?

节点如何使用Node.js source code's lib directory 中的文件?节点可执行文件是否在 运行 之前解释库中的文件,或者这些 javascript 文件在节点可执行文件的编译过程中是如何使用的?

这些文件被称为内部 Javascript 文件。它们被打包到节点可执行文件中,并且 node.js 知道如何在 node.js 应用 运行 期间需要时从可执行文件中获取它们。可执行文件包含资源系统,因此除了代码之外,它们还可以包含其他类型的资源(文本、图像、对话框等...)。

当您在 node.js 脚本文件中执行 require() 时,它会根据已知的内部脚本文件名列表检查您要查找的名称。如果匹配,则它会从可执行文件中的内部位置获取源代码,而不是从本地文件系统中的单独文件中获取。同样,如果 require() 来自这些内部文件之一,它也知道在其内部位置查找所需的文件。

执行时运行为Javascript。它们不会被预编译成 Javascript 以外的东西。主要区别在于它们是包含在节点可执行文件中的 Javascript 脚本资源,而不是从文件系统加载的东西。