require()
не добавляет автоматически вещи в глобальное пространство имен, как вы просите. Он просто этого не делает и не работает. Он возвращает значение, которое может быть отдельным значением или объектом или массивом, полным нескольких значений. Вы ДОЛЖНЫ назначить возвращаемое значение или какое-либо свойство возвращаемого значения чему-либо, чтобы сохранить его для дальнейшего использования.
Синтаксис ES6 можно использовать для автоматического создания переменных в локальной области для определенных свойств возвращаемого объекта из require()
, например:
const {sayName, sayAge} = require('./mod');
sayName("Pedro"); // My name is Pedro
sayAge(28); // My age is 28
Имейте в виду, что это тоже не глобалы. Это переменные уровня модуля. Это действительно просто сокращение языка для этого:
const temp = require('./mod');
const sayName = temp.sayName;
const sayAge = temp.sayAge;
sayName("Pedro"); // My name is Pedro
sayAge(28); // My age is 28
Этот языковой ярлык, безусловно, полезен, но я хотел, чтобы вы знали, что он на самом деле делает.