Ответ
При импорте файла в Metarhia (например, в Impress) используются CommonJS-модули (require). Импортируется то, что экспортируется через module.exports или exports.
Пример:
// file.js
module.exports = { foo: 'bar' };
// или
exports.foo = 'bar';
// main.js
const data = require('./file.js');
console.log(data.foo); // 'bar'
Если файл экспортирует функцию/класс, то импортируется именно она. Если экспортируется объект — весь объект.
Важно: в Metarhia нет поддержки ES-модулей (import/export) по умолчанию.
Ответ 18+ 🔞
А, ну это ж классика, блядь! Смотри, тут всё просто, как три копейки, но если не знать — можно и в просак въехать.
Вот представь: ты в Metarhia (ну, в Impress, например) пытаешься файл подтянуть. Так вот, забывай нахуй про эти модные import/export из ES-модулей. Их тут нихуя нету, по умолчанию. Всё по-старинке, по-деревенски, по CommonJS.
Работает это так: в одном файле ты что-то вываливаешь наружу через module.exports или просто exports.
// file.js
module.exports = { foo: 'bar' };
// или, что почти то же самое
exports.foo = 'bar';
А в другом — хватаешь это дело старым добрым require.
// main.js
const data = require('./file.js');
console.log(data.foo); // 'bar'
И всё, пипец! Главное — понимать, что ты выгружаешь. Если выгрузил функцию или класс — получишь функцию или класс. Если выгрузил объект — получишь весь объект, со всеми его потрохами. Никаких дефолтных экспортов по-новомодному, тут всё честно, блядь.
Запомни раз и навсегда: в этом царстве — царь require, а import — это так, хуй с горы, не наш метод.