Файлы *.js в узле /lib используются во время компиляции исполняемого файла узла?
Как файлы в каталоге lib исходного кода Node.js используются узлом? Интерпретирует ли исполняемый файл узла файлы в библиотеке перед запуском, или эти файлы javascript каким-то образом используются во время компиляции исполняемого файла узла?
1 ответ
Эти файлы называются внутренними файлами Javascript. Они упакованы в исполняемый файл узла, и node.js знает, как получить их из исполняемого файла при необходимости во время запуска приложения node.js. Исполняемые файлы содержат систему ресурсов, так что в дополнение к коду они могут также содержать другие типы ресурсов (текст, изображения, диалоги и т. Д.).
Когда вы делаете require()
в файле сценария node.js он проверяет имя, которое вы ищете, по списку известных внутренних имен файлов сценария. Если он совпадает, то он выбирает источник из своего внутреннего расположения в исполняемом файле, а не из отдельного файла в локальной файловой системе. Точно так же, если require()
приходит из одного из этих внутренних файлов, он знает, что искать нужный файл также в своем внутреннем расположении.
Они запускаются как Javascript во время выполнения. Они не скомпилированы во что-то, кроме Javascript. Основное различие заключается в том, что они являются ресурсами сценариев Javascript, содержащимися в исполняемом файле узла, а не чем-то загруженным из файловой системы.