Другой способ сделать это, по моему мнению, это выполнить все в файле lib, когда вы вызываете функцию require () , используя (функция (/ * вещи здесь * /) {}) (); выполнение этого сделает все эти функции глобальной областью, точно так же как eval () решение
ЦСИ / lib.js
(function () {
funcOne = function() {
console.log('mlt funcOne here');
}
funcThree = function(firstName) {
console.log(firstName, 'calls funcThree here');
}
name = "Mulatinho";
myobject = {
title: 'Node.JS is cool',
funcFour: function() {
return console.log('internal funcFour() called here');
}
}
})();
И тогда в вашем основном коде вы можете вызывать ваши функции по имени, например:
main.js
require('./src/lib')
funcOne();
funcThree('Alex');
console.log(name);
console.log(myobject);
console.log(myobject.funcFour());
сделает этот вывод
bash-3.2$ node -v
v7.2.1
bash-3.2$ node main.js
mlt funcOne here
Alex calls funcThree here
Mulatinho
{ title: 'Node.JS is cool', funcFour: [Function: funcFour] }
internal funcFour() called here
undefined
Обратите внимание на undefined , когда вы вызываете мой object.funcFour () , он будет таким же, если вы загрузите с помощью eval () . Надеюсь, это поможет:)