При компиляции среагировать и Redux приложения с Webpack и Бабеля я получаю:Невозможно назначить только для чтения свойства '__esModule'
Uncaught TypeError: Cannot assign to read only property '__esModule' of #<Object>
В некоторых старых браузерах (< = Chrome 1, Android 4, Safari 5).
Этого вопрос, кажется, проистекает из redux и react-redux вывода линии exports.__esModule = true;
в lib
сборке, но мое приложение, использующее Object.defineProperty
вместо (потому что они build loosely и у меня нет).
Два решения:
Строительство моего приложения в режиме
loose
также.Импорт
react-redux/src
иredux/src
и его изготовление с использованием того же .babelrc, что и приложение (все не свободно).
Пока они согласуются и оба:
Object.defineProperty(exports, "__esModule", {
value: true
});
и exports.__esModule = true;
не сосуществуют в моем выходе, все работает.
Вопрос в том, какое правильное решение? Почему это влияет только на старые браузеры? И почему они конфликтуют?
Адрес similar question.
Я не уверен, почему это не удастся. Он присваивается только один раз в начале модуля, ничто не должно переписывать его, так что ошибка очень странная. Можете ли вы увидеть, где она выбрасывает фактическую ошибку? – loganfsmyth
Он выдает первый импортированный модуль, в котором присутствует 'export .__ esModule = true;'. Я предполагаю, что после того, как вызывается первый объект Object.defineProperty, общий объект экспорта становится только для чтения, так что назначение ломается в более поздних модулях, которые были созданы свободно (но только выбрасываются в упомянутых браузерах). Возможно, я полностью потерял отметку, так как я не могу найти кого-либо еще с этой проблемой рядом с предоставленной ссылкой. –
Вот что я в замешательстве. 'export' не используется, он должен быть включен только в один модуль. – loganfsmyth