Разница между параметром предварительной загрузки NodeJs (-r) и явным требованием в REPL
Я использую esm , очень полезный пакет для поддержки ключевых слов импорта ES. Согласно документу, в REPL он может использовать параметр командной строки preload для его инициализации. т.е.
node -r esm
Или явно инициализировать в REPL:
require = require("esm")(module/*, options*/)
module.exports = require("./main.js")
Основываясь на помощи NodeJs, необходимо предварительно загрузить модуль с помощью
require
. У меня вопрос, почему в REPL нельзя просто использовать:
require("esm")
для достижения той же функции, что и опция предварительной нагрузки
-r
; вместо этого мы должны переопределить значение по умолчанию
required
переменная в контексте, чтобы она работала.
Пытался разгадать волшебство, глядя на
esm
исходный код. Но мне это слишком сложно понять.