Что импортируется из файла в Metarhia

Ответ

При импорте файла в 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 — это так, хуй с горы, не наш метод.