Невозможно ES6 импортировать плагин ChartJS в Aurelia

Я использую chart.js в моем приложении Aurelia и работает нормально.

Теперь я хочу добавить chartjs-plugin-deferred плагин, а после npm install:ed это и добавил это к aurelia.json"s dependencies массив теперь я получаю следующую ошибку:

Uncaught TypeError: Cannot read property 'helpers' of undefined

Указывая на первые пару строк в коде плагина:

var Chart = window.Chart;
var helpers = Chart.helpers;

(Обратите внимание, что мне даже не нужно использовать плагин (import 'chartjs-plugin-deferred'; для появления ошибки; как только он добавлен в aurelia.json, я получаю ошибки).

Если я добавлю console.dir(window.Chart) перед строками, которые выдают ошибки, это на самом деле не неопределенно, и если я пытаюсь использовать плагин в своих диаграммах, он на самом деле работает нормально.

Может кто-нибудь объяснить, почему возникает эта ошибка и есть ли способ как-то избавиться от нее? Я чувствую себя некомфортно, отправляя код, который, хотя и работает, как и должен, выдает ошибки в консоли.

Я большой поклонник npm, импорта и т. Д., Но чаще всего вы сталкиваетесь с такими проблемами, как imo, что доставляет немало хлопот и фактически заставляет меня скучать по старым добрым временам просто наваливать script элементы друг на друга.

Редактировать: я попробовал с парой плагинов просто посмотреть, возможно, deferred плагин был проблемой здесь, но любой другой плагин, который я попробовал, полностью убивает сборку.

У кого-нибудь есть опыт успешного импорта ChartJS и плагина ChartJS в Aurelia?

1 ответ

Решение

Проблема в том, что библиотека не предоставляет какого-либо значимого способа подключиться к загрузчику модулей и должным образом сначала полностью загрузить зависимость ChartJS, прежде чем продолжить выполнение.

Было бы лучше, если бы библиотека могла обернуть свой код в UMD-совместимый формат для одновременного удовлетворения наиболее распространенных форматов, среди тех, что RequireJS используется для CLI Aurelia.

Я вижу, что вы создали Github Issue, включая и автора библиотек. Хорошая работа, я создал небольшой PR, чтобы добавить недостающую функцию, которая затем также заставляет пример работать, не вызывая ошибку отсутствующего помощника.

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