2016-01-07 3 views
0

Я пишу несколько плагинов Jenkins, и я бы хотел использовать Chart.js в большинстве из них. Но каждый плагин отвечает за генерацию небольшого куска страницы, а это значит, что я в том числе Chart.js несколько раз по странице:Chart.js несколько включают предупреждение

<script src="${rootURL}/plugin/jenkins-report-rpms/Chart.js"></script> 
<script src="${rootURL}/plugin/jenkins-report-jck/Chart.js"></script> 
<script src="${rootURL}/plugin/jenkins-report-other/Chart.js"></script> 

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

+0

Почему вы не импортируете один раз в разделе главы и не удаляете другие ссылки? – Minzkraut

ответ

0

Вы можете обернуть свой код Chartjs (т. Е. Изменив файл Chart.js), чтобы проверить наличие глобальной переменной Chart (window.Chart !== undefined) перед запуском завернутого кода.

Это означает, что вы, вероятно, должны иметь модульную структуру, каждый из модулей Jenkins (плагины) зависит от модуля Chart.js. См. http://requirejs.org/ для одного из способов сделать это.

+0

Закончено создание отдельного плагина. Надеялся, чтобы этого не случилось, но похоже, что это самый надежный способ сделать это. – TheIndifferent

Смежные вопросы