Спред объекта module.exports работает с перебоями

У меня проблема с использованием module.exports = {} в одном из моих файлов проекта.

Файл содержит множество функций, которые экспортируются как именованные экспорты, но также содержит развернутый объект. Это выглядит примерно так:

module.exports = {
    ...DEFAULT_METHODS,
    methodDefinedAbove,
    anotherFunction,
    moreFunctionsStill,
}

Когда я импортирую из этого файла в другое место в проекте. Импорт работает нормально. Я могу импортировать обе статически названные функции, например:

import { methodDefinedAbove } from '../../theFileWithExports';

а также функции, которые определены в объекте DEFAULT_METHODS, например:

import { definedInDefaultMethods } from '../../theFileWithExports';

Это отлично работает с десятками файлов в моем проекте. Сегодня добавил новый файл, и импорт не работает. Когда я удаляю разворот ... DEFAULT_METHODS, он работает. Но я не могу понять, почему это работает в десятках мест и просто сломается для нового файла. Новый файл является родственником других файлов с рабочим импортом.

Я даже могу взломать обходной путь, импортировав нужную мне функцию в другой файл и сохранив ее как статическую переменную класса, а затем импортировав этот класс в компонент и используя его статический метод.

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

Al.G. 07.09.2018 21:58

К вашему сведению, объединение module.exports и именованного импорта ES - это рецепт будущего сломанного кода. Официальной спецификации для такого взаимодействия нет. Намного лучше было бы использовать ES export.

loganfsmyth 07.09.2018 22:03

Могу только второй loganfsmyth. Используйте правильный синтаксис export модуля ES6 вместо module.exports.

Bergi 07.09.2018 23:57
... не оператор!
Felix Kling 08.09.2018 02:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
214
0

Другие вопросы по теме