У меня проблема с использованием module.exports = {} в одном из моих файлов проекта.
Файл содержит множество функций, которые экспортируются как именованные экспорты, но также содержит развернутый объект. Это выглядит примерно так:
module.exports = {
...DEFAULT_METHODS,
methodDefinedAbove,
anotherFunction,
moreFunctionsStill,
}
Когда я импортирую из этого файла в другое место в проекте. Импорт работает нормально. Я могу импортировать обе статически названные функции, например:
import { methodDefinedAbove } from '../../theFileWithExports';
а также функции, которые определены в объекте DEFAULT_METHODS, например:
import { definedInDefaultMethods } from '../../theFileWithExports';
Это отлично работает с десятками файлов в моем проекте. Сегодня добавил новый файл, и импорт не работает. Когда я удаляю разворот ... DEFAULT_METHODS, он работает. Но я не могу понять, почему это работает в десятках мест и просто сломается для нового файла. Новый файл является родственником других файлов с рабочим импортом.
Я даже могу взломать обходной путь, импортировав нужную мне функцию в другой файл и сохранив ее как статическую переменную класса, а затем импортировав этот класс в компонент и используя его статический метод.
К вашему сведению, объединение module.exports и именованного импорта ES - это рецепт будущего сломанного кода. Официальной спецификации для такого взаимодействия нет. Намного лучше было бы использовать ES export.
Могу только второй loganfsmyth. Используйте правильный синтаксис export модуля ES6 вместо module.exports.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Можете ли вы показать нам, как вы его импортируете, если он сломан? Что вы делаете иначе, чем другие исходные файлы?