Diokuz / baron

Native scroll with custom scrollbar
MIT License
776 stars 124 forks source link

Cannot read property 'apply' of undefined #158

Closed Badalik closed 6 years ago

Badalik commented 7 years ago

Использую сборку с webpack, после апдейта появилась ошибка Cannot read property 'apply' of undefined, до этого стояла версия 2.2.2 baron

maksimkuznetsov commented 7 years ago

@Badalik Получилось запустить с вебпаком его?

Badalik commented 7 years ago

@mk-initflow нет, только с версией 2.2.2

Diokuz commented 7 years ago

@Badalik как вы его запускаете, как jQuery плагин? Тогда см. https://github.com/Diokuz/baron/issues/156

dimensi commented 7 years ago

image Подключаю вот так.

  import baron from 'baron';

  function mounted() {
    const contentElement = this.$refs.content;

    baron(contentElement);
  }

this.$refs.content ссылка на обычный dom элемент.

Diokuz commented 7 years ago

Ох, обленился я совсем :( Обещаю починить на следующей неделе, если воспроизведу. Но идея почему сломано уже есть.

dimensi commented 7 years ago

@Diokuz, проблема ясна как день. Ваш логгер пытается выдать инфу, что барон подключили, но jquery он не находит, но что-то идет не так и сам логгер падает. Проблема в доке, у вас сказано, что baron якобы не зависим от jquery и может вполне себе работать, а оказывается нужно портянку функций или кучу библиотек подключить, чтоб заменить этот jquery. И я не могу понять, как так, написано, что jquery не нужен, но без jquery не пашет.

berrtech commented 7 years ago

C jquery тоже падает если вебпаком подключать. Если я правильно понял, проблема здесь, в core.js

image

baron.fn.log определяется в debug.js, но в core.js он нигде не подключается, соответственно здесь в core.js при логгинге и получаем apply of undefined

image

Diokuz commented 7 years ago

Ха!

Да, здесь сразу две проблемы

  1. Не передан или определён в глобале jQeury или его заменитель. Я понимаю, что это проблема распространённая, поскольку мало кто к реакту лепит jQuery, но починка потребует времени.
  2. Сломано логирование, потому что при сборке вебпаком подцепляется не минифицированная продакшн-версия, а исходники. Это я починю быстро, но большинство кейсов это не починет.

В общем, in progress...

Workaround: just add jQuery to your webapp.

Diokuz commented 7 years ago

Fixed in baron@3.0.0