Webpack не загружает правильный модуль - PullRequest
0 голосов
/ 06 мая 2019

У меня есть приложение Cordova, которое я создаю для iOS и Android. Я только что переключился на движок WKWevView, и теперь он в основном работает, но я получаю следующую ошибку при использовании модуля js-image npm:

TypeError: IOBuffer не является конструктором

Я застрял на том, как диагностировать это дальше. Я подозреваю, что это может быть проблема с Webpack, а может и не иметь никакого отношения к WKWebView. Webpack производит этот код:

const IOBuffer = __webpack_require__(102);
var io = new IOBuffer();

И здесь выдается ошибка. Я проверил объект IOBuffer, и это просто пустой хеш ({}).

Любые предложения о том, как я могу диагностировать это? Почему Webpack не загружает правильный класс?

Модуль iobuffer устанавливается в нескольких версиях:

quasar-app@0.0.1 /Users/kristiankauper/dev/hileadzz_app
├─┬ image-js@0.21.6
│ ├─┬ fast-bmp@1.0.0
│ │ └── iobuffer@3.2.0 
│ ├─┬ fast-jpeg@1.0.1
│ │ ├── iobuffer@2.1.0 
│ │ └─┬ tiff@2.1.0
│ │   └── iobuffer@2.1.0  deduped
│ ├─┬ fast-png@3.1.3
│ │ └── iobuffer@4.0.1  deduped
│ └─┬ tiff@3.0.1
│   └── iobuffer@4.0.1  deduped
└── iobuffer@4.0.1 

Ошибка возникает при попытке загрузить файл JPEG, поэтому используется библиотека iobuffer@2.1.0, но должно быть в порядке, что это старая версия? Я думаю, что npm и webpack хранят эти версии отдельно, верно? (Я не могу обновить версию, потому что это то, что требуется последней версии image-js / fast-jpeg.)

Есть идеи?

1 Ответ

0 голосов
/ 06 мая 2019

Оказывается, что это были проблемы:

│ ├─┬ fast-png@3.1.3
│ │ └── iobuffer@4.0.1  deduped
│ └─┬ tiff@3.0.1
│   └── iobuffer@4.0.1  deduped

Хотя эти версии fast-png и tiff обе разрешают iobuffer@4.0.1 в качестве зависимости, они, похоже, не работают с этимверсия.Я понизил их оба до тех, которые требуют iobuffer@3.2.0, и теперь все работает отлично:

├─┬ fast-png@3.1.0
│ └── iobuffer@3.2.0 
└─┬ tiff@3.0.0
  └── iobuffer@3.2.0  deduped
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...