Я закончил тем, что экспортировал замороженный объект с анонимными функциями получения, а не с самими константами.Это снижает риск появления неприятных ошибок из-за простой опечатки с именем const, так как в случае опечатки будет выдана ошибка времени выполнения.Вот полный пример, который также использует символы ES6 для констант, обеспечивая уникальность, и функции стрелок ES6.Был бы признателен за обратную связь, если что-то в этом подходе кажется проблематичным.
'use strict';
const DIRECTORY = Symbol('the directory of all sheets');
const SHEET = Symbol('an individual sheet');
const COMPOSER = Symbol('the sheet composer');
module.exports = Object.freeze({
getDirectory: () => DIRECTORY,
getSheet: () => SHEET,
getComposer: () => COMPOSER
});