Взаимодействовать со скриптами из консоли
Есть ли способ вызвать модуль или функцию из консоли? Например, модуль, который создает рабочие крипы, вызывается из консоли с помощью my_module.add_creep?
4 ответа
Для данного примера используйте require('my_module').add_creep();
Функция require возвращает все, что назначено для module.exports в этом модуле.
@cho: require не должен возвращать функцию. Скорее возвращает функцию, потому что модуль содержит функцию. Если модуль назначается следующим образом module.export = {test: 'test'}
следуйте за фрагментом require('that_module')
вернусь {test: 'test'}
так далее...
Примечание. Не уверен, что у других есть такая проблема, но иногда консоль вообще не возвращает результат... В этом случае попробуйте перезагрузить страницу. Просто убедитесь, что игра не останавливается при выполнении команд...
Я только что понял это сегодня. Но есть хороший способ получить доступ к вашим методам из консоли.
Просто импортируйте ваши методы в объект Game (в вашем скрипте)
Game.creepManager = require('CreepManager');
Теперь вы можете использовать консоль, набрав
Game.creepManager.yourfunctionhere();
Другие упоминали использование require и присвоения Game, но вы также можете создавать новые команды и объекты верхнего уровня, назначая global.
Основной цикл:
global.rebuildMemory = () => console.log('Memory rebuilt.');
global.Commands = require('consoleCommands');
Затем из консоли:
rebuildMemory();
Commands.printRoomReport('W3N4');
require
Функция возвращает функцию, поэтому вы можете вызывать ее direclty в консоли следующим образом:
require('harvester')(Game.creeps.harvester1);
Мне удалось вызвать модуль lodash из консоли, вызвав его так require('lodash').pluck(characters, 'name')
, Не уверен, что он работает с модулями, созданными пользователем.